13.1.13.4.1. 컨테이너#

컨테이너는 자체 값을 가지지 않으며 – 다른 컨트롤을 구성합니다. 각 컨테이너는 폼의 전체 너비를 차지하고, 그 안에 나열된 컨트롤은 자체적인 폼으로 구성됩니다. 두 가지가 있습니다: group 은 레이블이 붙은 상자를 그리고, tabs 는 탭 막대를 그립니다.

모든 컨트롤은 공통 키( name , label , tooltip , enabled )도 사용할 수 있습니다. 자세한 내용은 개요 를 참조하세요.

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 일 때 제목에 체크박스가 붙어 상자 안의 모든 컨트롤을 활성화하거나 비활성화하며, 그 체크박스 자체의 on/off 상태가 저장됩니다.

  • value (불리언, 기본값 true) – 해당 제목 체크박스의 초기 상태입니다. checkabletrue 일 때만 의미가 있습니다.

  • controls (배열) – 상자 안에 표시되는 컨트롤입니다.

저장: checkabletrue 일 때 불리언(제목 체크박스)을 저장합니다. 일반 그룹은 자체적으로 아무것도 저장하지 않으며 – 그 안의 컨트롤만 자신의 값을 저장합니다.

13.1.13.4.1.2. tabs#

탭 막대입니다. 각 탭은 자체 컨트롤 목록을 가진 페이지이므로, 긴 폼을 Camera, Network, System 등으로 나눌 수 있습니다.

{
  "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 상자를 포함할 수 있으며, 그룹은 그룹 안에 중첩될 수 있습니다. 모든 controls 배열 – 최상위 배열, 그룹의 배열, 탭 페이지의 배열 – 은 동일한 컨트롤 객체를 받으므로, 이 페이지들의 규칙은 모든 수준에서 동일하게 적용됩니다.

탭 안에 중첩된 checkable group 은 흔한 구성입니다: 탭이 하나의 기능을 담고, 그룹의 체크박스가 그 기능을 켜거나 끄며, 그 안의 컨트롤이 기능을 설정합니다.