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

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) vagy 2 (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 a values[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 0 vagy value, amelyik kisebb) – a legalacsonyabb megengedett érték.

  • max (egész szám, alapértelmezetten 100 vagy 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ítsd 16 é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 0 eseté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 0 vagy value, amelyik kisebb) – a legalacsonyabb megengedett érték.

  • max (szám, alapértelmezetten 100 vagy 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 0 vagy value, amelyik kisebb) – a sáv alsó vége.

  • max (egész szám, alapértelmezetten 100 vagy 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.