Aktualisierungen serverseitig
Beispielmodul: hellotypes, Property live.
Alle vorherigen Seiten reagierten auf einen Schreibzugriff vom Client. Ein Modul kann seine eigenen Werte auch selbst verändern, typischerweise über einen QTimer:
QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, [this]()
{
mValue += 2.0;
getEltPrg("live", "progress")->setPrgValue(mValue, true);
});
timer->start(500);Hier gilt keine Permission-/directedit-Regel: dieser Pfad läuft nie über einen Schreibzugriff vom Client, das Modul ändert direkt seinen eigenen Datastore.
Die Anzeige organisieren: devcat und group
devcat erzeugt einen Tab in der Oberfläche; group einen Unter-Tab innerhalb eines devcat. Zwei Properties, die sich denselben devcat teilen, erscheinen im selben Tab, eine unter der anderen.
Jeder Property einen eigenen devcat zu geben vermeidet es, mehrere schwer lesbare Blöcke in demselben Tab zu stapeln — besonders nützlich, sobald eine Seite mehrere unterschiedliche Datenfamilien zeigt (wie dieses Modul).
Häufig aktualisierte Properties isolieren
Eine Property wird komplett neu an den Client gedumpt, sobald sich auch nur eines ihrer Elemente ändert. Animierte Elemente (zum Beispiel alle 500ms) mit selten geänderten Elementen — ein Bild, ein Videostream — in derselben Property zu mischen, lässt letztere bei jedem Tick grundlos neu laden/springen.
Häufig aktualisierte Elemente in ihre eigene Property isolieren, selbst innerhalb derselben konzeptuellen Familie (hier: “die Anzeigetypen”). Das Beispielmodul trennt so display (statisch: Licht, Bild, Video) von live (animiert: Balken, Spinner).