13.1.13.4.2. Értékvezérlők#
Ezek azok a vezérlők, amelyek egy beállítást hordoznak. Mindegyik hordoz egy value értéket, és a Mentés a szerkesztett value értéket írja vissza a vezérlőbe. Az alábbi táblázat gyors leképezés a vezérlőtől az általa tárolt JSON típusig; az azt követő szakaszok minden kulcsot dokumentálnak.
Vezérlő | Ment |
|---|---|
checkbox | boolean, vagy egész szám |
combobox | a kiválasztott érték, vagy annak indexe |
radio | a kiválasztott érték, vagy annak indexe |
spinbox | egész szám |
doublespinbox | szám (lebegőpontos) |
slider | egész szám |
lineedit | string |
Minden értékvezérlő elfogadja a közös kulcsokat is (name, label, tooltip, enabled); lásd az áttekintés oldalt. A label a vezérlő mellett jelenik meg (magán a dobozon egy checkbox esetén).
13.1.13.4.2.1. checkbox#
Egy be/ki kapcsoló. Opcionálisan háromállású, olyan beállításokhoz, amelyeknek van egy „beállítatlan” középső állapotuk.
{ "type": "checkbox", "name": "draw_overlays", "label": "Draw Overlays", "value": true }
Argumentumok:
label (string) – a négyzet mellett megjelenő szöveg. Csak egyszerű szöveg (a többi vezérlővel ellentétben, amelyek feliratai formázott szöveget fogadnak el).
tristate (boolean, alapértelmezetten
false) – egy harmadik, részlegesen bejelölt állapot engedélyezése.value – a kezdeti állapot. Kétállású: egy boolean. Háromállású:
0(ki),1(részleges) vagy2(be).
Ment: egy boolean értéket kétállású négyzet esetén; egy egész 0, 1 vagy 2 értéket háromállású négyzet esetén.
13.1.13.4.2.2. combobox#
Egy legördülő menü választási lehetőségekkel.
{
"type": "combobox",
"name": "resolution",
"label": "Resolution",
"options": ["QQVGA", "QVGA", "VGA"],
"values": ["qqvga", "qvga", "vga"],
"value": "qvga"
}
Argumentumok:
options (sztringek tömbje) – a menüben megjelenő elemek.
values (array) – egy opcionális párhuzamos tömb a mentendő értékekkel, egy minden option elemhez. A values megadásakor a menü a
options[i]elemet mutatja, de avalues[i]értéket menti – így a felhasználó a „QVGA” szöveget látja, miközben a fájl a"qvga"értéket tárolja. A bejegyzések bármilyen JSON típusúak lehetnek. A values nélkül a vezérlő ehelyett a kiválasztott elem indexét menti.value – a kezdeti kijelölés. A values megadásakor a values egyik elemével megegyező bejegyzés. A values nélkül a kiválasztandó elem indexe (alapértelmezetten
0).
Ment: a megfelelő values bejegyzést (bármilyen típus), ha a values meg van adva; egyébként a kiválasztott indexet (egész szám).
13.1.13.4.2.3. radio#
Egy rádiógomb-készlet – egyszerre egy választás látható, mint egy combobox, de teljesen kifejtve elrendezve.
{
"type": "radio",
"name": "mode",
"label": "Mode",
"options": ["Idle", "Track", "Record"],
"values": ["idle", "track", "record"],
"value": "idle",
"orientation": "horizontal"
}
Argumentumok:
options (sztringek tömbje) – bejegyzésenként egy gomb.
values (array) – a mentendő opcionális értékek, egy minden option elemhez, pontosan úgy, mint a combobox esetén. Enélkül a vezérlő a kiválasztott indexet menti.
value – a kezdeti kijelölés, amelyet a values értékeivel párosítanak vagy indexként használnak, mint a combobox esetén.
orientation (string, alapértelmezetten
"vertical") –"horizontal"a gombok sorba rendezéséhez, egyébként oszlopba.
Ment: a megfelelő values bejegyzést (bármilyen típus), vagy a kiválasztott indexet.
13.1.13.4.2.4. spinbox#
Egy számmező egész számokhoz, fel/le nyilakkal.
{
"type": "spinbox",
"name": "server_port",
"label": "Port",
"value": 8080,
"min": 0,
"max": 65535,
"group_separator": true
}
Argumentumok:
value (egész szám, alapértelmezetten
0) – a kezdeti szám.min (egész szám, alapértelmezetten
0vagy value, amelyik kisebb) – a legalacsonyabb megengedett érték.max (egész szám, alapértelmezetten
100vagy value, amelyik nagyobb) – a legmagasabb megengedett érték.step (egész szám, alapértelmezetten
1) – a fel/le léptetés mértéke.prefix (string) – a szám előtt megjelenő szöveg, pl.
"0x".suffix (string) – a szám után megjelenő szöveg, pl. egy mértékegység, mint a
" px".base (egész szám, alapértelmezetten
10) – a megjelenítési számrendszer alapja; állítsd16értékre a szám hexadecimális megjelenítéséhez és szerkesztéséhez.group_separator (boolean, alapértelmezetten
false) – a számjegyek csoportosítása ezreselválasztókkal.special_value_text (string) – a szám helyett megjelenítendő szöveg, amikor az a min értéken áll, pl. „Off” megjelenítése
0esetén.
Ment: egy egész számot.
13.1.13.4.2.5. doublespinbox#
Egy számmező tizedes számokhoz.
{
"type": "doublespinbox",
"name": "sensitivity",
"label": "Sensitivity",
"value": 50.0,
"min": 0,
"max": 100,
"step": 0.5,
"decimals": 1,
"suffix": " %"
}
Argumentumok:
value (szám, alapértelmezetten
0) – a kezdeti szám.min (szám, alapértelmezetten
0vagy value, amelyik kisebb) – a legalacsonyabb megengedett érték.max (szám, alapértelmezetten
100vagy value, amelyik nagyobb) – a legmagasabb megengedett érték.decimals (egész szám, alapértelmezetten
2) – hány számjegyet kell megjeleníteni a tizedesvessző után.step (szám, alapértelmezetten
1.0) – a fel/le léptetés mértéke.prefix (string) – a szám előtt megjelenő szöveg, pl.
"max ".suffix (string) – a szám után megjelenő szöveg, pl. egy mértékegység, mint a
" %".group_separator (boolean, alapértelmezetten
false) – ezreselválasztók.special_value_text (string) – a megjelenítendő szöveg, amikor a szám a min értéken áll.
Ment: egy számot (lebegőpontos).
13.1.13.4.2.6. slider#
Egy vízszintes csúszka mellette élő numerikus kijelzéssel.
{
"type": "slider",
"name": "brightness",
"label": "Brightness",
"value": 50,
"min": 0,
"max": 100,
"step": 1,
"suffix": " %",
"ticks": 25
}
Argumentumok:
value (egész szám, alapértelmezetten
0) – a kezdeti pozíció.min (egész szám, alapértelmezetten
0vagy value, amelyik kisebb) – a sáv alsó vége.max (egész szám, alapértelmezetten
100vagy value, amelyik nagyobb) – a sáv felső vége.step (egész szám, alapértelmezetten
1) – a billentyűzetes és húzásos léptetés mértéke; a húzások a legközelebbi többszöröshöz igazodnak.prefix (string) – a csúszka melletti numerikus kijelzés előtt megjelenő szöveg, pl.
"x".suffix (string) – a kijelzés után megjelenő szöveg, pl.
" %".ticks (egész szám) – a sáv alá rajzolt osztásjelek közötti térköz.
Ment: egy egész számot.
13.1.13.4.2.7. lineedit#
Egy egysoros szövegmező nevekhez, jelszavakhoz, címekhez és hasonlókhoz.
{
"type": "lineedit",
"name": "hostname",
"label": "Hostname",
"value": "openmv-cam",
"placeholder": "letters, digits, dashes",
"regex": "[A-Za-z0-9-]+",
"clear_button": true
}
Argumentumok:
value (string, alapértelmezetten
"") – a kezdeti szöveg.placeholder (string) – szürke súgószöveg, amely akkor jelenik meg, amikor a mező üres.
max_length (egész szám) – a legtöbb karakter, amelyet a mező elfogad.
mask (string) – egy beviteli maszk, amely rögzíti a begépelhető szöveg elrendezését, pl.
"000.000.000.000;_"egy IPv4-címhez. Lásd az Input masks szakaszt alább.regex (string) – egy reguláris kifejezés, amelyre a teljes bejegyzésnek illeszkednie kell. Lásd a Regular expressions szakaszt alább.
clear_button (boolean, alapértelmezetten
false) – egy kis törlőgomb megjelenítése a mezőn belül.password (boolean, alapértelmezetten
false) – a szöveg elrejtése pontokként, és egy szem gomb hozzáadása a felfedéséhez.
Ment: egy sztringet.
Egy mask és egy regex egyaránt korlátozza azt, amit a mező elfogad, ellentétes irányokból – egy maszk a szöveg elrendezését rögzíti, egy regex a tartalmát korlátozza. Egy olyan mező, amelyen bármelyik szerepel, az egyetlen vezérlő, amely megakadályozhatja a Mentést: ha a szövege hiányos vagy nem illeszkedik, a szerkesztő a label alapján felsorolja a mezőt, és megtagadja a mentést, amíg azt ki nem javítják vagy nem törlik. Egy mezőn legfeljebb egyet használj a kettő közül.
13.1.13.4.2.7.1. Beviteli maszkok#
Egy mask karakterről karakterre rögzíti a mezőt: az elválasztók a felhasználó számára fel vannak rajzolva, akinek csak az üres helyeket kell kitöltenie. Minden maszkkarakter egy beviteli pozíciót jelöl:
9– egy kötelező számjegy;0– egy opcionális számjegy.A/a– egy kötelező / opcionális betű.N/n– egy kötelező / opcionális betű vagy számjegy.X/x– egy kötelező / opcionális, bármilyen fajtájú karakter.H/h– egy kötelező / opcionális hexadecimális számjegy.>/<– a következő betűk nagybetűssé / kisbetűssé alakítása; a!leállítja az átalakítást.
Bármely más karakter – a . a 000.000.000.000 mintában, egy - egy sorozatszámban – egy literális elválasztó: automatikusan elhelyeződik, és a felhasználó gépelése közben átugorja. Ahhoz, hogy egy maszkkaraktert literálisként használj, tegyél elé egy fordított perjelet.
A vég közelében lévő ; beállítja a kitöltetlen pozíciókhoz megjelenített helyőrzőt: a "000.000.000.000;_" egy üres mezőt ___.___.___.___ formában jelenít meg. Hagyd le, és az üres helyek szóközök lesznek. Amíg bármely kötelező pozíció még üres, a bejegyzés hiányos, ami megakadályozza a Mentést.
13.1.13.4.2.7.2. Reguláris kifejezések#
Egy regex a tartalmat ellenőrzi az elrendezés helyett, és jobban illik, amikor a szabály „ezek a karakterek, ez a minta”, nem pedig egy rögzített mező. A teljes bejegyzésnek illeszkednie kell – a kifejezés mindkét végén rögzített, így a "[A-Za-z0-9-]+" azt jelenti, hogy csak betűk, számjegyek és kötőjelek elejétől a végéig, nem pusztán „tartalmaz egyet”.
Az ellenőrzés minden billentyűleütésnél lefut. Egy karakter addig fogadható el, amíg a szöveg még teljes illeszkedéssé bővülhet, és abban a pillanatban elutasításra kerül, amint már nem, így a felhasználó soha nem tud érvénytelen valamit begépelni. A mező csak akkor számít érvényesnek – és a Mentés csak akkor engedélyezett –, ha a teljes kifejezés illeszkedik; egy odáig vezető részleges bejegyzés a helyén marad, de megakadályozza a Mentést, amíg el nem készül.
Egy minta felépítéséhez és teszteléséhez a regex101.com gépelés közben elmagyarázza az egyes részeket – állítsd a flavor beállítását PCRE2-re, arra a szintaxisra, amelyet a szerkesztő használ.