Spec-Zone.ru › Qt 5.14

Тип QML CheckDelegate

Делегат элемента с индикатором отметки, который можно переключать включено/выключено. Подробнее...

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

ItemDelegate

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

Свойства

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

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

CheckDelegate представляет собой делегат элемента, который можно переключать включено (выбрано) или выключено (не выбрано). Делегаты Check обычно используются для выбора одного или нескольких вариантов из набора вариантов в списке. Для меньших наборов вариантов или для вариантов, которые нужно однозначно идентифицировать, используйте вместо 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 Делегат отмечен.

См. также tristate и 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.14/qml-qtquick-controls2-checkdelegate.html

Spec-Zone.ru

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