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 0/1/2

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ě) nebo 2 (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í 0 nebo value, podle toho, co je menší) – nejnižší povolená hodnota.

  • max (integer, výchozí 100 nebo 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 na 16 pro 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í 0 nebo value, podle toho, co je menší) – nejnižší povolená hodnota.

  • max (number, výchozí 100 nebo 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í 0 nebo value, podle toho, co je menší) – dolní konec dráhy.

  • max (integer, výchozí 100 nebo 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á.