Actualizaciones del lado del servidor

Módulo de ejemplo: hellotypes, propiedad live.

Todas las páginas anteriores reaccionaban a una escritura que viene del cliente. Un módulo también puede hacer evolucionar sus propios valores por sí mismo, típicamente desde 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);

Aquí no se aplica ninguna regla de permiso/directedit: este camino nunca pasa por una escritura del cliente, el módulo modifica directamente su propio datastore.

Organizar la visualización: devcat y group

devcat crea una pestaña en la interfaz; group, una subpestaña dentro de un devcat. Dos propiedades que comparten el mismo devcat aparecen en la misma pestaña, una debajo de la otra.

Una pestaña por propiedad, para una lectura simple

Dar un devcat distinto a cada propiedad evita apilar varios bloques poco legibles en una misma pestaña — especialmente útil en cuanto una página presenta varias familias de datos distintas (como este módulo).

Aislar las propiedades de actualización frecuente

Una propiedad se vuelve a volcar en bloque al cliente en cuanto cambia uno solo de sus elementos. Mezclar, en una misma propiedad, elementos animados (cada 500ms, por ejemplo) con elementos modificados raramente — una imagen, un flujo de vídeo — hace que estos últimos se recarguen/salten en cada tick, sin motivo.

Buena práctica: separar lo frecuente de lo raro

Aislar los elementos de actualización frecuente en su propia propiedad, incluso dentro de una misma familia conceptual (aquí, “los tipos de visualización”). El módulo de ejemplo separa así display (estático: luz, imagen, vídeo) de live (animado: barra, spinner).