Spec-Zone.ru › Qt 5.13

Тип QML CheckBox

Кнопка выбора, которая может быть включена или выключена. Подробнее...

Заявление импорта: import QtQuick.Controls 2.5
С: Qt 5.7
Наследует:

AbstractButton

  • Список всех членов, включая унаследованные члены

Свойства

  • checkState : перечисление
  • nextCheckState : функция
  • tristate : bool

Подробное описание

CheckBox представляет собой кнопку выбора, которая может быть включена (отмечена) или выключена (не отмечена). Кнопки выбора обычно используются для выбора одного или нескольких вариантов из набора вариантов. Для больших наборов вариантов, таких как те, что в списке, рассмотрите использование CheckDelegate вместо этого.

CheckBox наследует свой API от AbstractButton. Например, состояние чекбокса можно установить с помощью свойства checked.

Помимо включенных и выключенных состояний, существует третье состояние: частично включенное. Состояние частичного включения можно включить с помощью свойства tristate. Это состояние указывает, что обычное состояние включено/выключено не может быть определено; обычно из-за других состояний, которые влияют на чекбокс. Это состояние полезно, когда несколько дочерних узлов выбраны в дереве, например.

ColumnLayout {
    CheckBox {
        checked: true
        text: qsTr("First")
    }
    CheckBox {
        text: qsTr("Second")
    }
    CheckBox {
        checked: true
        text: qsTr("Third")
    }
}

Иерархические группы чекбоксов можно управлять с помощью неисключительной ButtonGroup.

Следующий пример иллюстрирует, как комбинированное состояние выбора дочерних элементов может быть привязано к состоянию выбора родительского чекбокса:

Column {
    ButtonGroup {
        id: childGroup
        exclusive: false
        checkState: parentBox.checkState
    }

    CheckBox {
        id: parentBox
        text: qsTr("Parent")
        checkState: childGroup.checkState
    }

    CheckBox {
        checked: true
        text: qsTr("Child 1")
        leftPadding: indicator.width
        ButtonGroup.group: childGroup
    }

    CheckBox {
        text: qsTr("Child 2")
        leftPadding: indicator.width
        ButtonGroup.group: childGroup
    }
}

См. также Настройка CheckBox, ButtonGroup и Кнопки управления.

Документация по свойствам

checkState : перечисление

Это свойство содержит состояние выбора чекбокса.

Доступные состояния:

Постоянная Описание
Qt.Unchecked Чекбокс не выбран.
Qt.PartiallyChecked Чекбокс частично выбран. Это состояние используется только при включенном tristate.
Qt.Checked Чекбокс выбран.

См. также tristate и checked.

nextCheckState : функция

Это свойство содержит функцию обратного вызова, которая вызывается для определения следующего состояния выбора всякий раз, когда чекбокс интерактивно переключается пользователем с помощью касания, мыши или клавиатуры.

По умолчанию обычный чекбокс циклически переключается между состояниями Qt.Unchecked и Qt.Checked, а трехсостояниевый чекбокс циклически переключается между состояниями Qt.Unchecked, Qt.PartiallyChecked, и Qt.Checked.

Функция обратного вызова nextCheckState может переопределить стандартное поведение. Следующий пример реализует трехсостояниевый чекбокс, который может представлять частичное состояние выбора в зависимости от внешних условий, но никогда не циклически переходит в частично выбранное состояние при интерактивном переключении пользователем.

CheckBox {
    tristate: true
    checkState: allChildrenChecked ? Qt.Checked :
                   anyChildChecked ? Qt.PartiallyChecked : Qt.Unchecked

    nextCheckState: function() {
        if (checkState === Qt.Checked)
            return Qt.Unchecked
        else
            return Qt.Checked
    }
}

Это свойство было представлено в QtQuick.Controls 2.4 (Qt 5.11).

tristate : bool

Это свойство указывает, является ли чекбокс трехсостояниевым.

На анимации ниже первый чекбокс трехсостояниевый:

Значение по умолчанию — false, т.е. чекбокс имеет только два состояния.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-qtquick-controls2-checkbox.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API