Aggiornamenti lato server
Modulo di esempio: hellotypes, proprietà live.
Tutte le pagine precedenti reagivano a una scrittura proveniente dal client. Un modulo può anche far evolvere i propri valori da solo, tipicamente da un QTimer:
QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, [this]()
{
mValue += 2.0;
getEltPrg("live", "progress")->setPrgValue(mValue, true);
});
timer->start(500);Nessuna regola di permesso/directedit si applica qui: questo percorso non passa mai da una scrittura client, il modulo modifica direttamente il proprio datastore.
Organizzare la visualizzazione: devcat e group
devcat crea una scheda nell’interfaccia; group, una sottoscheda all’interno di un devcat. Due proprietà che condividono lo stesso devcat appaiono nella stessa scheda, una sotto l’altra.
Dare un devcat distinto a ogni proprietà evita di accumulare più blocchi poco leggibili nella stessa scheda — particolarmente utile non appena una pagina presenta diverse famiglie di dati (come questo modulo).
Isolare le proprietà ad aggiornamento frequente
Una proprietà viene ridumpata in blocco al client non appena uno solo dei suoi elementi cambia. Mescolare, in una stessa proprietà, elementi animati (ogni 500ms, per esempio) con elementi raramente modificati — un’immagine, un flusso video — fa ricaricare/saltare questi ultimi a ogni tick, senza motivo.
Isolare gli elementi ad aggiornamento frequente nella propria proprietà, anche all’interno di una stessa famiglia concettuale (qui, “i tipi di visualizzazione”). Il modulo di esempio separa così display (statico: luce, immagine, video) da live (animato: barra, spinner).