13.1.13.4.1. Behållare#

Behållare håller inget eget värde – de organiserar andra kontroller. Var och en sträcker sig över formulärets hela bredd, och kontrollerna som listas inuti den byggs som ett eget formulär. Det finns två: group ritar en märkt ruta, och tabs ritar en flikrad.

Alla kontroller accepterar också de gemensamma nycklarna (name, label, tooltip, enabled); se översikten.

13.1.13.4.1.1. group#

En märkt ruta runt en uppsättning kontroller. Valfritt checkable, vilket gör rubriken till en brytare för allt inuti den.

{
  "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 }
  ]
}

Argument:

  • title (string) – rubriken som visas på rutan.

  • checkable (boolean, standard false) – när true bär rubriken en kryssruta som aktiverar eller inaktiverar varje kontroll inuti rutan, och vars eget på/av-tillstånd sparas.

  • value (boolean, standard true) – det initiala tillståndet för den rubrikkryssrutan. Endast meningsfullt när checkable är true.

  • controls (array) – kontrollerna som visas inuti rutan.

Sparar: en boolean (rubrikkryssrutan) när checkable är true; en vanlig grupp sparar inget eget – endast kontrollerna inuti den sparar sina värden.

13.1.13.4.1.2. tabs#

En flikrad. Varje flik är en sida med sin egen lista av kontroller, så att ett långt formulär kan delas upp över Camera, Network, System, och så vidare.

{
  "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" }
      ]
    }
  ]
}

Argument:

  • tab_position (string, standard "north") – vilken kant flikraden sitter på: "north", "south", "west", eller "east".

  • tabs (array) – fliksidorna, i ordning. Varje sida är ett objekt med:

    • title (string) – flikens etikett.

    • tooltip (string) – inforuta för fliken.

    • controls (array) – kontrollerna som visas på den sidan.

Sparar: inget eget; kontrollerna på varje sida sparar sina egna värden.

13.1.13.4.1.3. Kapsling#

Vilken kontroll som helst kan placeras inuti vilken behållare som helst, på valfritt djup. En group kan innehålla en tabs, en fliksida kan innehålla group-rutor, grupper kan kapslas inuti grupper. Varje controls-array – den på toppnivå, en grupps, och en fliksidas – tar samma kontrollobjekt, så reglerna på dessa sidor gäller likadant på varje nivå.

En kryssbar group kapslad inuti en flik är ett vanligt upplägg: fliken rymmer en funktion, gruppens kryssruta slår funktionen på eller av, och kontrollerna inuti konfigurerar den.