Spec-Zone.ru › Qt

Тип QML CheckBox

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

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

AbstractButton

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

Свойства

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

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

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

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

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

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

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

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

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 : перечисление

Это свойство содержит состояние проверки CheckBox.

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

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

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

[с QtQuick.Controls 2.4 (Qt 5.11)] nextCheckState : функция

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

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

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

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

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

На анимации ниже первый CheckBox имеет три состояния:

По умолчанию false, т.е. CheckBox имеет только два состояния.

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

Spec-Zone.ru

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