Organizzazione degli oggetti grafici¶
Introduzione
Gli oggetti che compongono l’interfaccia utente di una Q Application si organizzano nella cartella UI.
Tutti gli oggetti grafici direttamente figli della cartella UI, o di una sua sottocartella, sono dei tipi di oggetto; sono quindi disponibili nel pannello Tipi per derivare istanze.
Organizzazione gerarchica
Tipicamente un’interfaccia utente si organizza in modo gerarchico, ovvero i diversi elementi che la compongono sono organizzati ad albero in modo via via più specifico a seconda della loro funzione.
La gerarchia degli oggetti grafici all’interno del modello informativo è determinata da oggetti grafici contenitori, gli unici che possono contenere altri oggetti grafici. La posizione degli oggetti nel modello informativo determina la loro posizione nel layout, sia a design time che a runtime (vedere Concetti di layout).
Finestra
L’oggetto Finestra è l’oggetto grafico contenitore radice. Dev’essere presente quando si vuole generare una Q Application dotata di interfaccia utente. Al suo interno si organizzano tutti gli oggetti che compongono l’interfaccia utente e le relative logiche.
È possibile creare più oggetti Finestra, da associare a Presentation engine diversi (vedere Presentation engine). Per questo, un oggetto Finestra può esistere solo come tipo.
Pannelli
Un pannello è un tipo di contenitore che aggrega diversi oggetti grafici pertinenti. La navigazione in una Q Application avviene tipicamente tra i diversi pannelli impostati.
Navigazione in un’interfaccia utente
La navigazione all’interno di un’interfaccia utente può essere realizzata sia con oggetti grafici dedicati alla navigazione (ad esempio gli oggetti Pannello di navigazione e Pannello dinamico) che con logiche personalizzate all’interno di NetLogic (vedere NetLogic).
Gli oggetti dedicati alla navigazione includono meccanismi di interazione e logiche di runtime per navigare tra diversi pannelli impostati. Tali oggetti a runtime creano ed eliminano nodi di interfaccia grafica a seconda della navigazione dell’utente.
Per la descrizione degli oggetti per la navigazione fare riferimento alla sezione Riferimento su oggetti e variabili di questo manuale.
Oggetti grafici riusabili: widget
Tipicamente in un’interfaccia utente è necessario presentare in modo coerente - a runtime - e gestire in modo efficiente - a design time - strutture di nodi uguali ma associati a dati diversi. Per fare questo sono necessari tipi di oggetti grafici con cui istanziare oggetti uguali. Questi tipi sono definiti per convenzione widget. Un widget può essere un singolo oggetto o un gruppo di oggetti grafici, progettato per uno specifico scopo di visualizzazione nell’interfaccia utente e che include tutte le logiche necessarie, realizzate con collegamenti dinamici e/o NetLogic.
Nota
l’associazione a dati diversi nelle varie istanze di uno stesso widget si esegue tipicamente tramite un alias, definito nel widget.
Ad esempio, un widget MotorWidget potrebbe essere composto da un pannello contenente un oggetto Indicatore circolare per mostrare la velocità e due etichette per descrivere i valori numerici di velocità e coppia. Il widget può essere istanziato a design time o a runtime per ogni motore di cui si vogliono visualizzare i dati. Ogni modifica alla struttura e alla formattazione del widget, in quanto un tipo di oggetto, si propaga su tutte le istanze.
Per conoscere come impostare un widget di questo tipo, vedere Progettare un widget per visualizzare valori di più motori.
Suggerimento
istanze di widget diversi possono essere annidate per creare moduli di interfaccia grafica articolati ma facilmente gestibili.