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 |
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) ili2(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 spremavalues[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
0ili value, što god je manje) – najniža dopuštena vrijednost.max (cijeli broj, zadano
100ili 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 na16za 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
0ili value, što god je manje) – najniža dopuštena vrijednost.max (broj, zadano
100ili 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
0ili value, što god je manje) – donji kraj trake.max (cijeli broj, zadano
100ili 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.