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.

Una scheda per proprietà, per una lettura semplice

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.

Buona pratica: separare il frequente dal raro

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).