13.1.13.4.1. Контейнери#
Контейнери не зберігають власного значення – вони впорядковують інші елементи керування. Кожен з них займає всю ширину форми, а перелічені всередині елементи керування будуються як окрема форма. Їх два: group малює позначену рамку, а tabs малює смугу вкладок.
Усі елементи керування також приймають спільні ключі (name, label, tooltip, enabled); див. огляд.
13.1.13.4.1.1. group#
Позначена рамка навколо набору елементів керування. За бажанням checkable, що перетворює заголовок на перемикач для всього, що знаходиться всередині.
{
"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 }
]
}
Аргументи:
title (рядок) – заголовок, що відображається на рамці.
checkable (булеве значення, за замовчуванням
false) – колиtrue, заголовок містить прапорець, який вмикає або вимикає кожен елемент керування всередині рамки і власний стан увімкнення/вимкнення якого зберігається.value (булеве значення, за замовчуванням
true) – початковий стан цього прапорця заголовка. Має сенс лише коли checkable дорівнюєtrue.controls (масив) – елементи керування, що відображаються всередині рамки.
Зберігає: булеве значення (прапорець заголовка), коли checkable дорівнює true; звичайна група не зберігає нічого власного – лише елементи керування всередині зберігають свої значення.
13.1.13.4.1.2. tabs#
Смуга вкладок. Кожна вкладка – це сторінка з власним списком елементів керування, тож довгу форму можна розділити на Camera, Network, System тощо.
{
"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" }
]
}
]
}
Аргументи:
tab_position (рядок, за замовчуванням
"north") – на якому краю розташована смуга вкладок:"north","south","west"або"east".tabs (масив) – сторінки вкладок, за порядком. Кожна сторінка – це об’єкт з:
title (рядок) – підпис вкладки.
tooltip (рядок) – підказка при наведенні для вкладки.
controls (масив) – елементи керування, що відображаються на цій сторінці.
Зберігає: нічого власного; елементи керування на кожній сторінці зберігають свої власні значення.
13.1.13.4.1.3. Вкладеність#
Будь-який елемент керування можна помістити в будь-який контейнер на будь-яку глибину. group може містити tabs, сторінка вкладки може містити рамки group, групи можуть вкладатися одна в одну. Кожен масив controls – верхнього рівня, групи та сторінки вкладки – приймає ті самі об’єкти елементів керування, тож правила на цих сторінках застосовуються однаково на кожному рівні.
Група group з прапорцем, вкладена у вкладку, – поширений підхід: вкладка містить функцію, прапорець групи вмикає або вимикає цю функцію, а елементи керування всередині її налаштовують.