Тип QML CheckDelegate
Делегат элемента с индикатором выбора, который можно переключать включение или выключение. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.5 |
| С момента: | Qt 5.7 |
| Наследует: |
Свойства
- checkState : перечисление
- nextCheckState : функция
- tristate : bool
Подробное описание
CheckDelegate представляет собой делегат элемента, который можно переключать включение (выбрано) или выключение (не выбрано). Делегаты выбора обычно используются для выбора одного или нескольких вариантов из набора вариантов в списке. Для меньших наборов вариантов или для вариантов, которые должны быть уникально идентифицируемыми, рассмотрите использование CheckBox вместо этого.
CheckDelegate наследует свой API от ItemDelegate, который наследуется от AbstractButton. Например, можно задать text и реагировать на щелчки с использованием API AbstractButton. Состояние делегата выбора можно установить с помощью свойства checked.
Помимо состояний выбранного и не выбранного, существует третье состояние: частично выбранное. Состояние частичного выбора можно включить, используя свойство tristate. Это состояние указывает, что обычное состояние выбранного/не выбранного нельзя определить; обычно из-за других состояний, которые влияют на делегат выбора. Это состояние полезно, когда несколько дочерних узлов выбраны в дереве, например.
ListView {
model: ["Option 1", "Option 2", "Option 3"]
delegate: CheckDelegate {
text: modelData
}
} См. также Настройка CheckDelegate, Делегатские элементы управления и CheckBox.
Документация по свойствам
checkState : перечисление
Это свойство определяет состояние выбора делегата выбора.
Доступные состояния:
| Константа | Описание |
|---|---|
Qt.Unchecked |
Делегат не выбран. |
Qt.PartiallyChecked |
Делегат частично выбран. Это состояние используется только при включенном tristate. |
Qt.Checked |
Делегат выбран. |
nextCheckState : функция
Это свойство содержит функцию обратного вызова, которая вызывается для определения следующего состояния выбора всякий раз, когда делегат выбора интерактивно переключается пользователем с помощью сенсорного ввода, мыши или клавиатуры.
По умолчанию обычный делегат выбора циклически переключается между состояниями Qt.Unchecked и Qt.Checked, а делегат выбора с тремя состояниями циклически переключается между состояниями Qt.Unchecked, Qt.PartiallyChecked, и Qt.Checked.
Функция обратного вызова nextCheckState может переопределить стандартное поведение. Следующий пример реализует делегат выбора с тремя состояниями, который может отображать частично выбранное состояние в зависимости от внешних условий, но никогда не переключается на частично выбранное состояние при интерактивном переключении пользователем.
CheckDelegate {
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
Это свойство определяет, имеет ли делегат выбора три состояния.
На анимации ниже первый checkdelegate имеет три состояния:
По умолчанию 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-checkdelegate.html