13.1.13.4.2. Vrijednosne kontrole#

Ovo su kontrole koje sadrže postavku. Svaka nosi value, a Spremi piše uređenu value natrag u kontrolu. Donja tablica je brzi pregled od kontrole do JSON tipa koji sprema; odjeljci koji slijede dokumentiraju svaki ključ.

Kontrola

Sprema

checkbox

boolean ili cijeli broj 0/1/2

combobox

odabrana vrijednost ili njezin indeks

radio

odabrana vrijednost ili njezin indeks

spinbox

cijeli broj

doublespinbox

broj (pomični zarez)

slider

cijeli broj

lineedit

niz znakova

Sve kontrole vrijednosti također prihvaćaju uobičajene ključeve (name, label, tooltip, enabled); pogledajte pregled. label se prikazuje pored kontrole (na samom okviru za checkbox).

13.1.13.4.2.1. checkbox#

Prekidač uključeno/isključeno. Opcionalno troznamenkast, za postavke koje imaju „nepostavljenu” sredinu.

{ "type": "checkbox", "name": "draw_overlays", "label": "Draw Overlays", "value": true }

Argumenti:

  • label (niz znakova) – tekst prikazan pored okvira. Samo običan tekst (za razliku od drugih kontrola, čije oznake prihvaćaju obogaćeni tekst).

  • tristate (boolean, zadano false) – dopušta treće, djelomično označeno stanje.

  • value – početno stanje. Dvoznamenkasto: boolean. Troznamenkasto: 0 (isključeno), 1 (djelomično) ili 2 (uključeno).

Sprema: boolean za dvoznamenkasti okvir; cijeli broj 0, 1 ili 2 za troznamenkasti okvir.

13.1.13.4.2.2. combobox#

Padajući izbornik izbora.

{
  "type": "combobox",
  "name": "resolution",
  "label": "Resolution",
  "options": ["QQVGA", "QVGA", "VGA"],
  "values": ["qqvga", "qvga", "vga"],
  "value": "qvga"
}

Argumenti:

  • options (polje nizova znakova) – stavke prikazane u izborniku.

  • values (polje) – opcionalno paralelno polje vrijednosti za spremanje, po jedna za svaku option. Uz values, izbornik prikazuje options[i] ali sprema values[i] – pa korisnik vidi „QVGA” dok datoteka sprema "qvga". Unosi mogu biti bilo koji JSON tip. Bez values, kontrola umjesto toga sprema indeks odabrane stavke.

  • value – početni odabir. Uz values, unos jednak jednoj od values. Bez values, indeks stavke koju treba odabrati (zadano 0).

Sprema: odgovarajući values unos (bilo koji tip) kada je values zadan; inače odabrani indeks (cijeli broj).

13.1.13.4.2.3. radio#

Skup radijskih gumba – jedan izbor vidljiv u isto vrijeme, poput combobox ali prikazan u cijelosti.

{
  "type": "radio",
  "name": "mode",
  "label": "Mode",
  "options": ["Idle", "Track", "Record"],
  "values": ["idle", "track", "record"],
  "value": "idle",
  "orientation": "horizontal"
}

Argumenti:

  • options (polje nizova znakova) – jedan gumb po unosu.

  • values (polje) – opcionalne vrijednosti za spremanje, po jedna za svaku option, točno kao za combobox. Bez toga, kontrola sprema odabrani indeks.

  • value – početni odabir, uspoređen s values ili korišten kao indeks, kao za combobox.

  • orientation (niz znakova, zadano "vertical") – "horizontal" za raspoređivanje gumba u red, inače u stupac.

Sprema: odgovarajući values unos (bilo koji tip) ili odabrani indeks.

13.1.13.4.2.4. spinbox#

Okvir za brojeve za cijele brojeve, sa strelicama gore/dolje.

{
  "type": "spinbox",
  "name": "server_port",
  "label": "Port",
  "value": 8080,
  "min": 0,
  "max": 65535,
  "group_separator": true
}

Argumenti:

  • value (cijeli broj, zadano 0) – početni broj.

  • min (cijeli broj, zadano 0 ili value, što god je manje) – najniža dopuštena vrijednost.

  • max (cijeli broj, zadano 100 ili value, što god je veće) – najviša dopuštena vrijednost.

  • step (cijeli broj, zadano 1) – prirast gore/dolje.

  • prefix (niz znakova) – tekst prikazan prije broja, npr. "0x".

  • suffix (niz znakova) – tekst prikazan nakon broja, npr. jedinica poput " px".

  • base (cijeli broj, zadano 10) – baza prikaza; postavite na 16 za prikaz i uređivanje broja u heksadecimalnom obliku.

  • group_separator (boolean, zadano false) – grupira znamenke razdjelnicima tisućica.

  • special_value_text (niz znakova) – tekst koji se prikazuje umjesto broja kada je na min, npr. prikaži „Off” na 0.

Sprema: cijeli broj.

13.1.13.4.2.5. doublespinbox#

Okvir za brojeve za decimalne brojeve.

{
  "type": "doublespinbox",
  "name": "sensitivity",
  "label": "Sensitivity",
  "value": 50.0,
  "min": 0,
  "max": 100,
  "step": 0.5,
  "decimals": 1,
  "suffix": " %"
}

Argumenti:

  • value (broj, zadano 0) – početni broj.

  • min (broj, zadano 0 ili value, što god je manje) – najniža dopuštena vrijednost.

  • max (broj, zadano 100 ili value, što god je veće) – najviša dopuštena vrijednost.

  • decimals (cijeli broj, zadano 2) – koliko znamenki prikazati nakon decimalne točke.

  • step (broj, zadano 1.0) – prirast gore/dolje.

  • prefix (niz znakova) – tekst prikazan prije broja, npr. "max ".

  • suffix (niz znakova) – tekst prikazan nakon broja, npr. jedinica poput " %".

  • group_separator (boolean, zadano false) – razdjelnici tisućica.

  • special_value_text (niz znakova) – tekst koji se prikazuje kada je broj na min.

Sprema: broj (pomični zarez).

13.1.13.4.2.6. slider#

Vodoravni klizač sa živim brojčanim očitanjem pored njega.

{
  "type": "slider",
  "name": "brightness",
  "label": "Brightness",
  "value": 50,
  "min": 0,
  "max": 100,
  "step": 1,
  "suffix": " %",
  "ticks": 25
}

Argumenti:

  • value (cijeli broj, zadano 0) – početni položaj.

  • min (cijeli broj, zadano 0 ili value, što god je manje) – donji kraj trake.

  • max (cijeli broj, zadano 100 ili value, što god je veće) – gornji kraj trake.

  • step (cijeli broj, zadano 1) – prirast za tipkovnicu i povlačenje; povlačenja se prilijepe na najbliži višekratnik.

  • prefix (niz znakova) – tekst prikazan prije brojčanog očitanja pored klizača, npr. "x".

  • suffix (niz znakova) – tekst prikazan nakon očitanja, npr. " %".

  • ticks (cijeli broj) – razmak crtica nacrtanih ispod trake.

Sprema: cijeli broj.

13.1.13.4.2.7. lineedit#

Jednoredno tekstualno polje, za imena, lozinke, adrese i slično.

{
  "type": "lineedit",
  "name": "hostname",
  "label": "Hostname",
  "value": "openmv-cam",
  "placeholder": "letters, digits, dashes",
  "regex": "[A-Za-z0-9-]+",
  "clear_button": true
}

Argumenti:

  • value (niz znakova, zadano "") – početni tekst.

  • placeholder (niz znakova) – sivi tekst savjeta prikazan dok je polje prazno.

  • max_length (cijeli broj) – najveći broj znakova koje će polje prihvatiti.

  • mask (niz znakova) – ulazna maska koja fiksira raspored onoga što se može upisati, npr. "000.000.000.000;_" za IPv4 adresu. Pogledajte Input masks u nastavku.

  • regex (niz znakova) – regularni izraz kojem cijeli unos mora odgovarati. Pogledajte Regular expressions u nastavku.

  • clear_button (boolean, zadano false) – prikazuje mali gumb za brisanje unutar polja.

  • password (boolean, zadano false) – skriva tekst kao točkice i dodaje gumb u obliku oka za njegovo otkrivanje.

Sprema: niz znakova.

mask i regex oboje ograničavaju što će polje prihvatiti, iz suprotnih kutova – maska fiksira raspored teksta, regex ograničava njegov sadržaj. Polje s bilo kojim od njih jedina je kontrola koja može blokirati spremanje: ako je njegov tekst nepotpun ili ne odgovara, uređivač navodi polje po njegovom label i odbija spremiti dok se ne ispravi ili očisti. Koristite najviše jedan od dva na jednom polju.

13.1.13.4.2.7.1. Ulazne maske#

mask fiksira polje znak po znak: razdjelnici se iscrtavaju za korisnika, koji samo popunjava praznine. Svaki znak maske predstavlja jedan ulazni položaj:

  • 9 – obavezna znamenka; 0 – opcionalna znamenka.

  • A / a – obavezno / opcionalno slovo.

  • N / n – obavezno / opcionalno slovo ili znamenka.

  • X / x – obavezni / opcionalni znak bilo koje vrste.

  • H / h – obavezna / opcionalna heksadecimalna znamenka.

  • > / < – pretvara sljedeća slova u velika / mala slova; ! zaustavlja pretvorbu.

Bilo koji drugi znak – . u 000.000.000.000, - u serijskom broju – doslovni je razdjelnik: postavlja se automatski i preskače dok korisnik tipka. Da biste koristili znak maske doslovno, stavite obrnutu kosu crtu ispred njega.

; blizu kraja postavlja rezervirani znak prikazan za nepopunjene položaje: "000.000.000.000;_" prikazuje prazno polje kao ___.___.___.___. Izostavite ga i praznine su razmaci. Dok je bilo koji obavezni položaj još prazan, unos je nepotpun, što blokira spremanje.

13.1.13.4.2.7.2. Regularni izrazi#

regex provjerava sadržaj umjesto rasporeda i bolji je izbor kada je pravilo „ovi znakovi, ovaj uzorak” umjesto fiksnog polja. Cijeli unos mora odgovarati – izraz je usidren na oba kraja, pa "[A-Za-z0-9-]+" znači samo slova, znamenke i crtice od početka do kraja, a ne samo „sadrži jedan”.

Provjera se izvodi pri svakom pritisku tipke. Znak se prihvaća sve dok bi tekst još mogao izrasti u potpuno podudaranje, a odbacuje se u trenutku kada to više ne bi mogao, pa korisnik nikada ne može tipkanjem doći do nečega nevaljanog. Polje se smatra valjanim – i spremanje je dopušteno – tek kada se cijeli izraz podudara; djelomični unos na putu do toga ostaje na mjestu ali blokira spremanje dok ne bude potpun.

Za izgradnju i testiranje uzorka, regex101.com objašnjava svaki dio dok tipkate – postavite njegovu vrstu na PCRE2, sintaksu koju uređivač koristi.