Progettare un widget per visualizzare valori di più motori¶
Introduzione
Questo tutorial mostra come progettare un widget per visualizzare i valori di più motori rappresentati dalla stessa struttura di nodi, definita nel tipo di oggetto Motor. In particolare si vogliono visualizzare i valori di velocità e accelerazione di ogni motore.
Scarica il progetto di esempio da qui
.
Passi
Creare il tipo di oggetto Motor
Creare un nuovo progetto standard.
Nella cartella Model creare un oggetto e rinominarlo Motor.
In Motor creare due variabili Speed e Acceleration senza valore.
Per rendere Motor un tipo di oggetto, trascinarlo nel pannello Tipi, per convenzione in particolare all’interno della cartella Modello: nella cartella Model compare un oggetto Motor (type), ovvero il nuovo tipo, e Motor ne diventa un’istanza.
Eliminare l’istanza Motor, non più necessaria.
Creare gli oggetti per tutti i motori di interesse
Per istanziare un nuovo oggetto motore, dalla cartella Modello del pannello Tipi, trascinare il tipo Motor nella cartella Model del pannello Progetto.
Rinominare l’oggetto appena creato (es. Motor1) e impostare i valori delle sue proprietà Speed e Acceleration.
Ripetere i due passi precedenti per ogni motore di cui si vogliono visualizzare i dati.
Ripetere la procedura per creare e configurare un secondo oggetto (Motor2).
Impostare gli oggetti grafici del widget
Nella cartella UI creare un oggetto Progetto (Nuovo > Contenitori > Pannello) e rinominarlo MotorWidget.
Nota
il nuovo pannello è un tipo; infatti ogni oggetto grafico creato direttamente nella cartella UI è un tipo.
In MotorWidget creare i seguenti nodi:
Un oggetto Indicatore circolare (Nuovo > Controlli base > Indicatore circolare), quindi rinominarlo SpeedGauge.
Un oggetto Indicatore lineare (Nuovo > Controlli base > Indicatore lineare), quindi rinominarlo AccelerationGauge.
Quattro etichette (Nuovo > Controlli base > Etichetta), quindi rinominarle SpeedLabel, SpeedValue, AccelerationLabel, AccelerationValue.
Impostare come valore della proprietà Testo dell’etichetta SpeedLabel la stringa Speed.
Impostare come valore della proprietà Testo dell’etichetta AccelerationLabel la stringa Acceleration.
Per modificare il layout del widget fare doppio clic su MotorWidget: si apre l’editor, in cui posizionare gli oggetti a piacere.
Impostare l’alias nel widget
È ora necessario impostare un alias in MotorWidget per permettere al widget la lettura delle variabili delle istanze di Motor.
Fare clic su MotorWidget, poi nel panello Proprietà fare clic su
, Alias.
Rinominare l’alias Motor.
Impostare la proprietà Kind dell’alias con il riferimento al tipo Motor. Per farlo, trascinare Motor (type) dalla cartella Model al campo valore della proprietà Kind.
Impostare nel widget la lettura di velocità e accelerazione dei motori
Con l’alias creato al passo precedente è ora possibile impostare nel widget i collegamenti dinamici necessari per leggere i valori di velocità e accelerazioni delle diverse istanze di Motor.
Fare clic su SpeedGauge e nella sua proprietà Valore impostare un collegamento dinamico con la proprietà Speed del tipo Motor, sfruttando l’alias ({Motor}.Speed).
Fare clic sull’etichetta SpeedValue e nella sua proprietà Testo impostare lo stesso collegamento ({Motor}.Speed).
Fare clic su AccelerationGauge e nella sua proprietà Valore impostare un collegamento dinamico con la proprietà Acceleration del tipo Motor, sfruttando l’alias ({Motor}.Acceleration).
Fare clic sull’etichetta AccelerationValue e nella sua proprietà Testo impostare lo stesso collegamento ({Motor}.Acceleration).
L’interfaccia grafica e le logiche del widget sono quindi completate.
Istanziare il widget per ogni motore
Per rappresentare graficamente ogni motore, è ora necessario istanziare il widget e associare ogni istanza ai relativi motori per leggere gli specifici valori di velocità e accelerazione.
Per istanziare il widget, dalla cartella Interfaccia utente del pannello Tipi, trascinare il tipo MotorWidget nell’oggetto MainWindow, nella cartella UI.
Rinominare l’istanza del widget MotorWidget1.
Ripetere i due passi precedenti e rinominare il nuovo widget MotorWidget2.
Puntare l’alias Motor di MotorWidget1 all’istanza Motor1.
Puntare l’alias Motor di MotorWidget2 all’istanza Motor2.
Vedi anche
Concetti correlati
Procedure correlate
API correlate