13.1.13.4.1. Tárolók#

A tárolók nem hordoznak saját értéket – más vezérlőket rendeznek el. Mindegyik a űrlap teljes szélességét kitölti, és a benne felsorolt vezérlők önálló űrlapként épülnek fel. Kettő van belőlük: a group egy feliratozott keretet rajzol, a tabs pedig egy fülsávot.

Minden vezérlő elfogadja a közös kulcsokat is (name, label, tooltip, enabled); lásd az áttekintés oldalt.

13.1.13.4.1.1. group#

Feliratozott keret vezérlők egy csoportja körül. Opcionálisan checkable, amely a fejlécet a benne lévő összes elem kapcsolójává alakítja.

{
  "type": "group",
  "title": "Wi-Fi",
  "checkable": true,
  "name": "wifi_enabled",
  "value": true,
  "controls": [
    { "type": "lineedit", "name": "ssid", "label": "SSID" },
    { "type": "lineedit", "name": "password", "label": "Password", "password": true }
  ]
}

Argumentumok:

  • title (string) – a kereten megjelenő fejléc.

  • checkable (boolean, alapértelmezetten false) – ha true, a fejléc egy jelölőnégyzetet kap, amely engedélyezi vagy letiltja a kereten belüli összes vezérlőt, és amelynek saját be/ki állapota mentésre kerül.

  • value (boolean, alapértelmezetten true) – a fejléc jelölőnégyzetének kezdeti állapota. Csak akkor van jelentése, ha a checkable értéke true.

  • controls (array) – a kereten belül megjelenő vezérlők.

Ment: egy boolean értéket (a fejléc jelölőnégyzete), ha a checkable értéke true; egy egyszerű csoport önmagában semmit sem ment – csak a benne lévő vezérlők mentik az értékeiket.

13.1.13.4.1.2. tabs#

Egy fülsáv. Minden fül egy oldal a saját vezérlőlistájával, így egy hosszú űrlap felosztható Camera, Network, System és így tovább oldalakra.

{
  "type": "tabs",
  "tab_position": "north",
  "tabs": [
    {
      "title": "Camera",
      "tooltip": "Sensor settings",
      "controls": [
        { "type": "slider", "name": "gain", "label": "Gain" }
      ]
    },
    {
      "title": "Network",
      "controls": [
        { "type": "lineedit", "name": "hostname", "label": "Hostname" }
      ]
    }
  ]
}

Argumentumok:

  • tab_position (string, alapértelmezetten "north") – melyik élen helyezkedik el a fülsáv: "north", "south", "west" vagy "east".

  • tabs (array) – a füloldalak, sorrendben. Minden oldal egy objektum a következőkkel:

    • title (string) – a fül felirata.

    • tooltip (string) – a fülhöz tartozó buboréksúgó szövege.

    • controls (array) – az adott oldalon megjelenő vezérlők.

Ment: önmagában semmit; az egyes oldalakon lévő vezérlők a saját értékeiket mentik.

13.1.13.4.1.3. Egymásba ágyazás#

Bármelyik vezérlő elhelyezhető bármelyik tárolóban, tetszőleges mélységig. Egy group tartalmazhat tabs elemet, egy füloldal tartalmazhat group kereteket, csoportok ágyazhatók csoportokba. Minden controls tömb – a legfelső szintű, egy csoporté és egy füloldalé – ugyanazokat a vezérlőobjektumokat fogadja el, így az ezeken az oldalakon leírt szabályok minden szinten egyformán érvényesek.

Egy fülbe ágyazott checkable group gyakori elrendezés: a fül tartalmaz egy funkciót, a csoport jelölőnégyzete be- vagy kikapcsolja a funkciót, a benne lévő vezérlők pedig konfigurálják azt.