13.1.13.4.1. Contenitori#
I contenitori non contengono un valore proprio – organizzano altri controlli. Ciascuno occupa l’intera larghezza del modulo e i controlli elencati al suo interno vengono costruiti come un modulo a sé stante. Ce ne sono due: group disegna un riquadro con etichetta e tabs disegna una barra di schede.
Tutti i controlli accettano anche le chiavi comuni (name, label, tooltip, enabled); vedere la panoramica.
13.1.13.4.1.1. group#
Un riquadro con etichetta attorno a un insieme di controlli. Facoltativamente checkable, il che trasforma l’intestazione in un interruttore per tutto ciò che contiene.
{
"type": "group",
"title": "Wi-Fi",
"checkable": true,
"name": "wifi_enabled",
"value": true,
"controls": [
{ "type": "lineedit", "name": "ssid", "label": "SSID" },
{ "type": "lineedit", "name": "password", "label": "Password", "password": true }
]
}
Argomenti:
title (string) – l’intestazione mostrata sul riquadro.
checkable (boolean, predefinito
false) – quandotrue, l’intestazione presenta una casella di spunta che abilita o disabilita ogni controllo all’interno del riquadro, e il cui stato acceso/spento viene salvato.value (boolean, predefinito
true) – lo stato iniziale di quella casella di spunta dell’intestazione. Significativo solo quando checkable ètrue.controls (array) – i controlli mostrati all’interno del riquadro.
Salva: un boolean (la casella di spunta dell’intestazione) quando checkable è true; un gruppo semplice non salva nulla di proprio – solo i controlli al suo interno salvano i loro valori.
13.1.13.4.1.2. tabs#
Una barra di schede. Ogni scheda è una pagina con il proprio elenco di controlli, così che un modulo lungo possa essere suddiviso tra Camera, Network, System e così via.
{
"type": "tabs",
"tab_position": "north",
"tabs": [
{
"title": "Camera",
"tooltip": "Sensor settings",
"controls": [
{ "type": "slider", "name": "gain", "label": "Gain" }
]
},
{
"title": "Network",
"controls": [
{ "type": "lineedit", "name": "hostname", "label": "Hostname" }
]
}
]
}
Argomenti:
tab_position (string, predefinito
"north") – su quale bordo si trova la barra delle schede:"north","south","west"o"east".tabs (array) – le pagine delle schede, in ordine. Ogni pagina è un oggetto con:
title (string) – l’etichetta della scheda.
tooltip (string) – il testo mostrato al passaggio del mouse sulla scheda.
controls (array) – i controlli mostrati su quella pagina.
Salva: nulla di proprio; i controlli di ciascuna pagina salvano i propri valori.
13.1.13.4.1.3. Annidamento#
Qualsiasi controllo può essere inserito in qualsiasi contenitore, a qualsiasi profondità. Un group può contenere un tabs, una pagina di scheda può contenere riquadri group, i gruppi possono annidarsi all’interno di altri gruppi. Ogni array controls – quello di livello superiore, quello di un gruppo e quello di una pagina di scheda – accetta gli stessi oggetti di controllo, quindi le regole di queste pagine valgono allo stesso modo a ogni livello.
Un group selezionabile annidato all’interno di una scheda è una disposizione comune: la scheda contiene una funzionalità, la casella di spunta del gruppo la attiva o disattiva e i controlli al suo interno la configurano.