13.1.13.4.1. Contenedores#

Los contenedores no tienen un valor propio – organizan otros controles. Cada uno ocupa todo el ancho del formulario, y los controles enumerados en su interior se construyen como un formulario propio. Hay dos: group dibuja un recuadro con etiqueta, y tabs dibuja una tira de pestañas.

Todos los controles también aceptan las claves comunes (name, label, tooltip, enabled); consulta la descripción general.

13.1.13.4.1.1. group#

Un recuadro con etiqueta alrededor de un conjunto de controles. Opcionalmente checkable, lo que convierte el encabezado en un interruptor para todo lo que hay en su interior.

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

Argumentos:

  • title (cadena) – el encabezado mostrado en el recuadro.

  • checkable (booleano, predeterminado false) – cuando es true, el encabezado incluye una casilla de verificación que habilita o deshabilita todos los controles dentro del recuadro, y cuyo propio estado activado/desactivado se guarda.

  • value (booleano, predeterminado true) – el estado inicial de esa casilla de verificación del encabezado. Solo tiene sentido cuando checkable es true.

  • controls (arreglo) – los controles mostrados dentro del recuadro.

Guarda: un booleano (la casilla de verificación del encabezado) cuando checkable es true; un grupo simple no guarda nada propio – solo los controles en su interior guardan sus valores.

13.1.13.4.1.2. tabs#

Una tira de pestañas. Cada pestaña es una página con su propia lista de controles, de modo que un formulario extenso puede dividirse entre Camera, Network, System, etc.

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

Argumentos:

  • tab_position (cadena, predeterminado "north") – en qué borde se sitúa la barra de pestañas: "north", "south", "west" o "east".

  • tabs (arreglo) – las páginas de pestañas, en orden. Cada página es un objeto con:

    • title (cadena) – la etiqueta de la pestaña.

    • tooltip (cadena) – texto emergente para la pestaña.

    • controls (arreglo) – los controles mostrados en esa página.

Guarda: nada propio; los controles de cada página guardan sus propios valores.

13.1.13.4.1.3. Anidamiento#

Cualquier control puede ir dentro de cualquier contenedor, a cualquier profundidad. Un group puede contener un tabs, una página de pestaña puede contener recuadros group, y los grupos pueden anidarse dentro de grupos. Todo arreglo controls – el de nivel superior, el de un grupo y el de una página de pestaña – admite los mismos objetos de control, de modo que las reglas de estas páginas se aplican igual en todos los niveles.

Un group con casilla de verificación anidado dentro de una pestaña es una disposición habitual: la pestaña contiene una función, la casilla del grupo la activa o desactiva, y los controles del interior la configuran.