13.1.13.4.1. コンテナ#

コンテナ自体は値を保持しません -- 他のコントロールをまとめる役割を持ちます。各コンテナはフォームの全幅にわたって配置され、その内部に列挙されたコントロールはそれ自体が一つのフォームとして構築されます。コンテナには2種類あります。group はラベル付きのボックスを描画し、tabs はタブストリップを描画します。

すべてのコントロールは共通のキー( namelabeltooltipenabled )も受け付けます。 概要 を参照してください。

13.1.13.4.1.1. group#

一連のコントロールを囲むラベル付きのボックスです。オプションで checkable にすると、見出しが内部のすべてに対するスイッチになります。

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

引数:

  • title(文字列)-- ボックスに表示される見出しです。

  • checkable(真偽値、デフォルト false)-- true の場合、見出しにチェックボックスが付き、ボックス内のすべてのコントロールを有効または無効にします。またそのオン/オフ状態自体も保存されます。

  • value*(真偽値、デフォルト ``true``)-- その見出しチェックボックスの初期状態です。*checkabletrue のときのみ意味を持ちます。

  • controls(配列)-- ボックス内に表示されるコントロールです。

保存内容:checkabletrue のときは 真偽値(見出しチェックボックス)。通常の group はそれ自体では何も保存しません -- 内部のコントロールがそれぞれの値を保存するだけです。

13.1.13.4.1.2. tabs#

タブストリップです。各タブは独自のコントロール一覧を持つページであり、長いフォームを CameraNetworkSystem などに分割できます。

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

引数:

  • tab_position(文字列、デフォルト "north")-- タブバーを配置する辺を指定します:"north""south""west""east" のいずれかです。

  • tabs(配列)-- タブページを順に並べたものです。各ページは次のキーを持つオブジェクトです:

    • title(文字列)-- タブのラベルです。

    • tooltip(文字列)-- タブのホバー時に表示されるテキストです。

    • controls(配列)-- そのページに表示されるコントロールです。

保存内容:それ自体では何も保存しません。各ページのコントロールがそれぞれの値を保存します。

13.1.13.4.1.3. ネスト#

任意のコントロールは、任意のコンテナ内に任意の深さまで配置できます。grouptabs を含むことができ、タブページは group ボックスを含むことができ、group を group の中にネストすることもできます。すべての controls 配列 -- 最上位のもの、group のもの、タブページのもの -- は同じコントロールオブジェクトを受け付けるため、これらのページに記載された規則はどの階層でも同じように適用されます。

タブの中にネストされた checkable な group はよくある構成です。タブが一つの機能を保持し、group のチェックボックスがその機能をオン/オフし、内部のコントロールがそれを設定します。