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, вложенная внутрь вкладки, – распространённая форма: вкладка содержит функцию, флажок группы включает или отключает эту функцию, а элементы управления внутри настраивают её.