Spec-Zone.ru › Qt 6.1

Тип QML CheckBox

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

Заявление об импорте: import QtQuick.Controls 2.1
С момента: 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 с помощью касания, мыши или клавиатуры.

По умолчанию обычная кнопка выбора переключается между состояниями Qt.Unchecked и Qt.Checked, а кнопка выбора в три состояния переключается между состояниями 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.1/qml-qtquick-controls2-checkbox.html

Spec-Zone.ru

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