13.1.13.4.2. Hodnotové ovládací prvky#
Toto jsou ovládací prvky, které drží nastavení. Každý nese value a Uložit zapíše upravené value zpět do ovládacího prvku. Tabulka níže je rychlou mapou od ovládacího prvku k typu JSON, který ukládá; následující oddíly dokumentují každý klíč.
Ovládací prvek | Ukládá |
|---|---|
checkbox | boolean nebo integer |
combobox | zvolená hodnota nebo její index |
radio | zvolená hodnota nebo její index |
spinbox | integer |
doublespinbox | number (s plovoucí desetinnou čárkou) |
slider | integer |
lineedit | string |
Všechny hodnotové ovládací prvky rovněž přijímají společné klíče (name, label, tooltip, enabled); viz přehled. Prvek label se zobrazuje vedle ovládacího prvku (u checkbox přímo na políčku).
13.1.13.4.2.1. checkbox#
Přepínač zapnuto/vypnuto. Volitelně třístavový, pro nastavení, která mají „nenastavený“ střed.
{ "type": "checkbox", "name": "draw_overlays", "label": "Draw Overlays", "value": true }
Argumenty:
label (string) – text zobrazený vedle políčka. Pouze prostý text (na rozdíl od ostatních ovládacích prvků, jejichž popisky přijímají formátovaný text).
tristate (boolean, výchozí
false) – povolí třetí, částečně zaškrtnutý stav.value – počáteční stav. Dvoustavový: boolean. Třístavový:
0(vypnuto),1(částečně) nebo2(zapnuto).
Ukládá: boolean pro dvoustavové políčko; integer 0, 1 nebo 2 pro třístavové políčko.
13.1.13.4.2.2. combobox#
Rozevírací nabídka voleb.
{
"type": "combobox",
"name": "resolution",
"label": "Resolution",
"options": ["QQVGA", "QVGA", "VGA"],
"values": ["qqvga", "qvga", "vga"],
"value": "qvga"
}
Argumenty:
options (pole řetězců) – položky zobrazené v nabídce.
values (array) – volitelné paralelní pole hodnot k uložení, jedna na každou option. S values nabídka zobrazuje
options[i], ale ukládávalues[i]– takže uživatel vidí „QVGA“, zatímco soubor ukládá"qvga". Položky mohou být libovolného typu JSON. Bez values ovládací prvek místo toho ukládá index vybrané položky.value – počáteční výběr. S values položka rovná jedné z values. Bez values index položky, která se má vybrat (výchozí
0).
Ukládá: odpovídající položku values (libovolný typ), když je values zadáno; jinak vybraný index (integer).
13.1.13.4.2.3. radio#
Sada přepínacích tlačítek – vždy je viditelná jedna volba, jako combobox, ale rozvržená celá.
{
"type": "radio",
"name": "mode",
"label": "Mode",
"options": ["Idle", "Track", "Record"],
"values": ["idle", "track", "record"],
"value": "idle",
"orientation": "horizontal"
}
Argumenty:
options (pole řetězců) – jedno tlačítko na položku.
values (array) – volitelné hodnoty k uložení, jedna na každou option, přesně jako u combobox. Bez něj ovládací prvek ukládá vybraný index.
value – počáteční výběr, porovnaný s values nebo použitý jako index, jako u combobox.
orientation (string, výchozí
"vertical") –"horizontal"pro uspořádání tlačítek do řady, jinak do sloupce.
Ukládá: odpovídající položku values (libovolný typ) nebo vybraný index.
13.1.13.4.2.4. spinbox#
Číselné pole pro celá čísla, se šipkami nahoru/dolů.
{
"type": "spinbox",
"name": "server_port",
"label": "Port",
"value": 8080,
"min": 0,
"max": 65535,
"group_separator": true
}
Argumenty:
value (integer, výchozí
0) – počáteční číslo.min (integer, výchozí
0nebo value, podle toho, co je menší) – nejnižší povolená hodnota.max (integer, výchozí
100nebo value, podle toho, co je větší) – nejvyšší povolená hodnota.step (integer, výchozí
1) – přírůstek nahoru/dolů.prefix (string) – text zobrazený před číslem, např.
"0x".suffix (string) – text zobrazený za číslem, např. jednotka jako
" px".base (integer, výchozí
10) – základ pro zobrazení; nastavte na16pro zobrazení a úpravu čísla v šestnáctkové soustavě.group_separator (boolean, výchozí
false) – seskupí číslice oddělovači tisíců.special_value_text (string) – text zobrazený místo čísla, když je na hodnotě min, např. zobrazit „Off“ při
0.
Ukládá: integer.
13.1.13.4.2.5. doublespinbox#
Číselné pole pro desetinná čísla.
{
"type": "doublespinbox",
"name": "sensitivity",
"label": "Sensitivity",
"value": 50.0,
"min": 0,
"max": 100,
"step": 0.5,
"decimals": 1,
"suffix": " %"
}
Argumenty:
value (number, výchozí
0) – počáteční číslo.min (number, výchozí
0nebo value, podle toho, co je menší) – nejnižší povolená hodnota.max (number, výchozí
100nebo value, podle toho, co je větší) – nejvyšší povolená hodnota.decimals (integer, výchozí
2) – kolik číslic zobrazit za desetinnou čárkou.step (number, výchozí
1.0) – přírůstek nahoru/dolů.prefix (string) – text zobrazený před číslem, např.
"max ".suffix (string) – text zobrazený za číslem, např. jednotka jako
" %".group_separator (boolean, výchozí
false) – oddělovače tisíců.special_value_text (string) – text zobrazený, když je číslo na hodnotě min.
Ukládá: number (s plovoucí desetinnou čárkou).
13.1.13.4.2.6. slider#
Vodorovný posuvník s živým číselným odečtem vedle něj.
{
"type": "slider",
"name": "brightness",
"label": "Brightness",
"value": 50,
"min": 0,
"max": 100,
"step": 1,
"suffix": " %",
"ticks": 25
}
Argumenty:
value (integer, výchozí
0) – počáteční poloha.min (integer, výchozí
0nebo value, podle toho, co je menší) – dolní konec dráhy.max (integer, výchozí
100nebo value, podle toho, co je větší) – horní konec dráhy.step (integer, výchozí
1) – přírůstek klávesnice a tažení; tažení se přichytává k nejbližšímu násobku.prefix (string) – text zobrazený před číselným odečtem vedle posuvníku, např.
"x".suffix (string) – text zobrazený za odečtem, např.
" %".ticks (integer) – rozestup značek vykreslených pod dráhou.
Ukládá: integer.
13.1.13.4.2.7. lineedit#
Jednořádkové textové pole, pro jména, hesla, adresy a podobně.
{
"type": "lineedit",
"name": "hostname",
"label": "Hostname",
"value": "openmv-cam",
"placeholder": "letters, digits, dashes",
"regex": "[A-Za-z0-9-]+",
"clear_button": true
}
Argumenty:
value (string, výchozí
"") – počáteční text.placeholder (string) – šedý nápovědní text zobrazený, dokud je pole prázdné.
max_length (integer) – nejvíce znaků, které pole přijme.
mask (string) – vstupní maska, která pevně určuje rozvržení toho, co lze zadat, např.
"000.000.000.000;_"pro adresu IPv4. Viz Input masks níže.regex (string) – regulární výraz, kterému musí odpovídat celý záznam. Viz Regular expressions níže.
clear_button (boolean, výchozí
false) – zobrazí malé tlačítko pro vymazání uvnitř pole.password (boolean, výchozí
false) – skryje text jako tečky a přidá tlačítko s okem pro jeho odhalení.
Ukládá: string.
mask i regex oba omezují, co pole přijme, z opačných úhlů – maska pevně určuje rozvržení textu, regulární výraz omezuje jeho obsah. Pole s kteroukoli z nich je jediný ovládací prvek, který může zablokovat uložení: pokud je jeho text neúplný nebo neodpovídá, editor pole vypíše podle jeho label a odmítne uložit, dokud není opraveno nebo vymazáno. Na jednom poli použijte nejvýše jednu z těchto dvou.
13.1.13.4.2.7.1. Vstupní masky#
mask pevně určuje pole znak po znaku: oddělovače se pro uživatele vykreslí a on pouze vyplňuje mezery. Každý znak masky zastupuje jednu vstupní pozici:
9– povinná číslice;0– volitelná číslice.A/a– povinné / volitelné písmeno.N/n– povinné / volitelné písmeno nebo číslice.X/x– povinný / volitelný znak jakéhokoli druhu.H/h– povinná / volitelná šestnáctková číslice.>/<– převede následující písmena na velká / malá;!převod zastaví.
Jakýkoli jiný znak – . v 000.000.000.000, - v sériovém čísle – je doslovný oddělovač: umístí se automaticky a při psaní se přeskočí. Chcete-li použít znak masky doslovně, umístěte před něj zpětné lomítko.
; poblíž konce nastavuje zástupný znak zobrazený pro nevyplněné pozice: "000.000.000.000;_" zobrazuje prázdné pole jako ___.___.___.___. Vynechte jej a mezery budou prázdné znaky. Dokud je jakákoli povinná pozice stále prázdná, je záznam neúplný, což blokuje uložení.
13.1.13.4.2.7.2. Regulární výrazy#
regex kontroluje obsah spíše než rozvržení a hodí se lépe, když je pravidlem „tyto znaky, tento vzor“ spíše než pevné pole. Musí odpovídat celý záznam – výraz je ukotven na obou koncích, takže "[A-Za-z0-9-]+" znamená pouze písmena, číslice a pomlčky od začátku do konce, nikoli pouze „obsahuje jednu“.
Kontrola probíhá při každém stisku klávesy. Znak je přijat, dokud by text mohl ještě dorůst do úplné shody, a odmítnut ve chvíli, kdy by nemohl, takže se uživatel nikdy nemůže dopsat k něčemu neplatnému. Pole se počítá jako platné – a uložení je povoleno – teprve tehdy, když odpovídá celý výraz; částečný záznam na cestě k němu zůstává na místě, ale blokuje uložení, dokud není úplný.
Pro sestavení a otestování vzoru regex101.com vysvětluje každou část, jak píšete – nastavte jeho variantu na PCRE2, syntaxi, kterou editor používá.