Тип QML CheckDelegate
Элемент делегата с индикатором выбора, который можно переключать включен/выключен. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.5 |
| С момента: | Qt 5.7 |
| Наследует: |
Свойства
- checkState : перечисление
- nextCheckState : функция
- tristate : bool
Подробное описание
CheckDelegate представляет собой делегат элемента, который можно переключать включенным (отмеченным) или выключенным (не отмеченным). Делегаты выбора обычно используются для выбора одного или нескольких вариантов из набора вариантов в списке. Для меньших наборов вариантов или для вариантов, которые должны быть уникально идентифицируемыми, следует использовать CheckBox вместо.
CheckDelegate наследует свой API от ItemDelegate, который, в свою очередь, наследуется от AbstractButton. Например, можно задать текст и реагировать на щелчки с помощью 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.12/qml-qtquick-controls2-checkdelegate.html