13.1.13.4.1. Kontenery#
Kontenery nie przechowują własnej wartości – porządkują inne kontrolki. Każdy zajmuje pełną szerokość formularza, a kontrolki w nim wymienione są budowane jako osobny formularz. Są dwa: group rysuje opisaną ramkę, a tabs rysuje pasek zakładek.
Wszystkie kontrolki akceptują również wspólne klucze (name, label, tooltip, enabled); zobacz przegląd.
13.1.13.4.1.1. group#
Opisana ramka wokół zestawu kontrolek. Opcjonalnie checkable, co zamienia nagłówek w przełącznik dla wszystkiego, co znajduje się w środku.
{
"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 }
]
}
Argumenty:
title (string) – nagłówek wyświetlany na ramce.
checkable (boolean, domyślnie
false) – gdytrue, nagłówek zawiera pole wyboru, które włącza lub wyłącza każdą kontrolkę wewnątrz ramki, a którego własny stan włączony/wyłączony jest zapisywany.value (boolean, domyślnie
true) – początkowy stan tego pola wyboru w nagłówku. Ma znaczenie tylko wtedy, gdy checkable ma wartośćtrue.controls (array) – kontrolki wyświetlane wewnątrz ramki.
Zapisuje: wartość boolean (pole wyboru w nagłówku), gdy checkable ma wartość true; zwykła grupa nie zapisuje niczego własnego – tylko kontrolki wewnątrz niej zapisują swoje wartości.
13.1.13.4.1.2. tabs#
Pasek zakładek. Każda zakładka to strona z własną listą kontrolek, więc długi formularz można podzielić na Camera, Network, System i tak dalej.
{
"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" }
]
}
]
}
Argumenty:
tab_position (string, domyślnie
"north") – na której krawędzi znajduje się pasek zakładek:"north","south","west"lub"east".tabs (array) – strony zakładek, w kolejności. Każda strona to obiekt z:
title (string) – etykieta zakładki.
tooltip (string) – tekst podpowiedzi wyświetlany po najechaniu na zakładkę.
controls (array) – kontrolki wyświetlane na tej stronie.
Zapisuje: nic własnego; kontrolki na każdej stronie zapisują swoje własne wartości.
13.1.13.4.1.3. Zagnieżdżanie#
Każda kontrolka może znaleźć się wewnątrz dowolnego kontenera, na dowolnej głębokości. group może zawierać tabs, strona zakładki może zawierać ramki group, a grupy mogą zagnieżdżać się w grupach. Każda tablica controls – ta na najwyższym poziomie, grupy i strony zakładki – przyjmuje te same obiekty kontrolek, więc reguły na tych stronach obowiązują tak samo na każdym poziomie.
Zaznaczalny group zagnieżdżony wewnątrz zakładki to częsty układ: zakładka mieści funkcję, pole wyboru grupy włącza lub wyłącza tę funkcję, a kontrolki wewnątrz ją konfigurują.