Класс QItemSelectionModel
Класс QItemSelectionModel отслеживает выбранные элементы в представлении. Подробнее...
| Заголовок: | #include <QItemSelectionModel> |
| qmake: | QT += core |
| Наследуется от: | QObject |
Типы публичного доступа
| Перечисление | SelectionFlag { NoUpdate, Clear, Select, Deselect, ..., ClearAndSelect } |
| Флаги | SelectionFlags |
Свойства
- selectedIndexes : const QModelIndexList
- 1 свойство унаследовано от QObject
Функции публичного доступа
| QItemSelectionModel(QAbstractItemModel *model = nullptr) | |
| QItemSelectionModel(QAbstractItemModel *model, QObject *parent) | |
| виртуальный | ~QItemSelectionModel() |
| bool | columnIntersectsSelection(int column, const QModelIndex &parent) const |
| QModelIndex | currentIndex() const |
| bool | hasSelection() const |
| bool | isColumnSelected(int column, const QModelIndex &parent) const |
| bool | isRowSelected(int row, const QModelIndex &parent) const |
| bool | isSelected(const QModelIndex &index) const |
| const QAbstractItemModel * | model() const |
| QAbstractItemModel * | model() |
| bool | rowIntersectsSelection(int row, const QModelIndex &parent) const |
| QModelIndexList | selectedColumns(int row = 0) const |
| QModelIndexList | selectedIndexes() const |
| QModelIndexList | selectedRows(int column = 0) const |
| const QItemSelection | selection() const |
| void | setModel(QAbstractItemModel *model) |
- 32 функции публичного доступа унаследованы от QObject
Свойства публичного доступа
| виртуальный void | clear() |
| виртуальный void | clearCurrentIndex() |
| void | clearSelection() |
| виртуальный void | reset() |
| виртуальный void | select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
| виртуальный void | select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command) |
| виртуальный void | setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
- 1 свойство публичного доступа унаследовано от QObject
Сигналы
| void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) |
| void | currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous) |
| void | currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous) |
| void | modelChanged(QAbstractItemModel *model) |
| void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
- 2 сигнала унаследованы от QObject
Статические члены публичного доступа
| const QMetaObject | staticMetaObject |
- 10 статических членов публичного доступа унаследованы от QObject
Защищенные функции
| void | emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection) |
- 9 защищенных функций унаследованы от QObject
Подробное описание
Класс QItemSelectionModel отслеживает выбранные элементы в представлении.
Класс QItemSelectionModel отслеживает выбранные элементы в представлении или в нескольких представлениях одного и того же модели.
Класс QItemSelectionModel является одним из классов модели/представления и входит в модель/представление фреймворк Qt.
Выбранные элементы хранятся в виде диапазонов. Если вам нужно изменить выбранные элементы, используйте select(), передав либо QItemSelection, либо QModelIndex и QItemSelectionModel::SelectionFlag.
Класс QItemSelectionModel использует двухслойный подход к управлению выделением, работая как с уже подтвержденными выделенными элементами, так и с элементами, которые являются частью текущего выделения. Текущие выделенные элементы являются частью текущего интерактивного выделения (например, при выделении резиновой лентой или клавишами Shift).
Для обновления текущих выделенных элементов используйте побитовое ИЛИ QItemSelectionModel::Current и любого из других SelectionFlags. Если вы опустите команду QItemSelectionModel::Current, будет создано новое текущее выделение, а предыдущее будет добавлено в общее выделение. Все функции работают с обоими слоями; например, selecteditems() вернет элементы из обоих слоёв.
Примечание: Начиная с версии 5.5, model, hasSelection и currentIndex являются свойствами метаобъекта.
См. также Моделирование/Представление, QAbstractItemModel и Пример диаграммы.
Документация по типу членов
перечисление QItemSelectionModel::SelectionFlagфлаги QItemSelectionModel::SelectionFlags
Это перечисление описывает способ обновления модели выбора.
| Константа | Значение | Описание |
|---|---|---|
QItemSelectionModel::NoUpdate |
0x0000 |
Выбор не будет выполнен. |
QItemSelectionModel::Clear |
0x0001 |
Полный выбор будет очищен. |
QItemSelectionModel::Select |
0x0002 |
Все указанные индексы будут выбраны. |
QItemSelectionModel::Deselect |
0x0004 |
Все указанные индексы будут сняты с выбора. |
QItemSelectionModel::Toggle |
0x0008 |
Все указанные индексы будут выбраны или сняты с выбора в зависимости от их текущего состояния. |
QItemSelectionModel::Current |
0x0010 |
Текущий выбор будет обновлен. |
QItemSelectionModel::Rows |
0x0020 |
Все индексы будут расширены, чтобы охватывать строки. |
QItemSelectionModel::Columns |
0x0040 |
Все индексы будут расширены, чтобы охватывать столбцы. |
QItemSelectionModel::SelectCurrent |
Select | Current |
Комбинация выбора и текущего значения, предоставленная для удобства. |
QItemSelectionModel::ToggleCurrent |
Toggle | Current |
Комбинация переключения и текущего значения, предоставленная для удобства. |
QItemSelectionModel::ClearAndSelect |
Clear | Select |
Комбинация очистки и выбора, предоставленная для удобства. |
Тип SelectionFlags является псевдонимом для QFlags<SelectionFlag>. Он хранит комбинацию значений SelectionFlag, объединенных операцией OR.
Документация по свойствам
selectedIndexes : const QModelIndexList
Это свойство было введено в Qt 5.5.
Функции доступа:
| QModelIndexList | selectedIndexes() const |
Сигнал уведомления:
| void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
Документация по функциям членов
QItemSelectionModel::QItemSelectionModel(QAbstractItemModel *model = nullptr)
Создаёт модель выбора, которая работает с указанной моделью элементов model.
QItemSelectionModel::QItemSelectionModel(QAbstractItemModel *model, QObject *parent)
Создаёт модель выбора, которая работает с указанной моделью элементов model с parent.
[virtual] QItemSelectionModel::~QItemSelectionModel()
Уничтожает модель выбора.
[virtual slot] void QItemSelectionModel::clear()
Очищает модель выбора. Вызывает selectionChanged() и currentChanged().
[virtual slot] void QItemSelectionModel::clearCurrentIndex()
Очищает текущий индекс. Вызывает currentChanged().
[slot] void QItemSelectionModel::clearSelection()
Очищает выбор в модели выбора. Вызывает selectionChanged().
Эта функция была введена в Qt 4.2.
bool QItemSelectionModel::columnIntersectsSelection(int column, const QModelIndex &parent) const
Возвращает true если в столбце с заданным parent выделены какие-либо элементы.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
[signal] void QItemSelectionModel::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот сигнал генерируется всякий раз, когда текущий элемент изменяется. Предыдущий модельной индекс элемента заменяется индексом current как текущий элемент выбора.
Обратите внимание, что этот сигнал не будет генерироваться при сбросе модели элементов.
См. также currentIndex(), setCurrentIndex() и selectionChanged().
[signal] void QItemSelectionModel::currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот сигнал генерируется, если текущий элемент меняется, и его столбец отличается от столбца предыдущего текущего элемента.
Обратите внимание, что этот сигнал не будет генерироваться при сбросе модели элементов.
См. также currentChanged(), currentRowChanged(), currentIndex() и setCurrentIndex().
QModelIndex QItemSelectionModel::currentIndex() const
Возвращает модельной индекс элемента для текущего элемента или недействительный индекс, если текущий элемент отсутствует.
См. также setCurrentIndex().
[signal] void QItemSelectionModel::currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот сигнал генерируется, если текущий элемент меняется, и его строка отличается от строки предыдущего текущего элемента.
Обратите внимание, что этот сигнал не будет генерироваться при сбросе модели элементов.
См. также currentChanged(), currentColumnChanged(), currentIndex() и setCurrentIndex().
[protected] void QItemSelectionModel::emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection)
Сравнивает два выбора newSelection и oldSelection и генерирует selectionChanged() со снятыми и выбранными элементами.
bool QItemSelectionModel::hasSelection() const
Возвращает true если модель выбора содержит какие-либо диапазоны выбора; в противном случае возвращает false.
Эта функция была введена в Qt 4.2.
bool QItemSelectionModel::isColumnSelected(int column, const QModelIndex &parent) const
Возвращает true если все элементы выделены в столбце с заданным parent.
Обратите внимание, что эта функция обычно быстрее, чем вызов isSelected() для всех элементов в том же столбце, и что невыбираемые элементы игнорируются.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
bool QItemSelectionModel::isRowSelected(int row, const QModelIndex &parent) const
Возвращает true если все элементы выделены в строке с заданным parent.
Обратите внимание, что эта функция обычно быстрее, чем вызов isSelected() для всех элементов в той же строке, и что невыбираемые элементы игнорируются.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
bool QItemSelectionModel::isSelected(const QModelIndex &index) const
Возвращает true если указанный модельной индекс элемента index выбран.
Примечание: Данная функция может быть вызвана через систему метаобъектов и из QML. См. Q_INVOKABLE.
const QAbstractItemModel *QItemSelectionModel::model() const
Возвращает модель элементов, над которой работает модель выделения.
См. также setModel().
QAbstractItemModel *QItemSelectionModel::model()
Возвращает модель элементов, над которой работает модель выделения.
Эта функция была добавлена в Qt 5.5.
[signal] void QItemSelectionModel::modelChanged(QAbstractItemModel *model)
Этот сигнал излучается, когда модель model успешно установлена с помощью setModel().
Эта функция была добавлена в Qt 5.5.
См. также model() и setModel().
[virtual slot] void QItemSelectionModel::reset()
Очищает модель выделения. Не излучает никаких сигналов.
bool QItemSelectionModel::rowIntersectsSelection(int row, const QModelIndex &parent) const
Возвращает true если в строке row с заданным parent выбраны какие-либо элементы.
Примечание: Данная функция может быть вызвана через систему метаобъектов и из QML. См. Q_INVOKABLE.
[virtual slot] void QItemSelectionModel::select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
Выделяет элемент модели с индексом index, используя заданную команду command, и излучает selectionChanged().
См. также QItemSelectionModel::SelectionFlags.
[virtual slot] void QItemSelectionModel::select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command)
Выделяет элементы selection, используя заданную команду command, и излучает selectionChanged().
См. также QItemSelectionModel::SelectionFlag.
QModelIndexList QItemSelectionModel::selectedColumns(int row = 0) const
Возвращает индексы в заданной row для столбцов, где все строки выделены.
Эта функция была добавлена в Qt 4.2.
Примечание: Данная функция может быть вызвана через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также selectedIndexes() и selectedRows().
QModelIndexList QItemSelectionModel::selectedIndexes() const
Возвращает список всех выделенных индексов элементов модели. Список не содержит дубликатов и не отсортирован.
Примечание: Функция-геттер для свойства selectedIndexes.
QModelIndexList QItemSelectionModel::selectedRows(int column = 0) const
Возвращает индексы в заданном column для строк, где все столбцы выделены.
Эта функция была добавлена в Qt 4.2.
Примечание: Данная функция может быть вызвана через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также selectedIndexes() и selectedColumns().
const QItemSelection QItemSelectionModel::selection() const
Возвращает диапазоны выделения, хранящиеся в модели выделения.
[signal] void QItemSelectionModel::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Этот сигнал излучается всякий раз, когда выделение изменяется. Изменение выделения представлено выделением элементов deselected и выделением элементов selected.
Обратите внимание, что текущий индекс изменяется независимо от выделения. Также обратите внимание, что этот сигнал не будет излучен при сбросе модели элементов.
Примечание: Сигнал-уведомление для свойства selectedIndexes.
См. также select() и currentChanged().
[virtual slot] void QItemSelectionModel::setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
Устанавливает элемент модели с индексом index в качестве текущего элемента и излучает currentChanged(). Текущий элемент используется для навигации с клавиатуры и индикации фокуса; он независим от выбранных элементов, хотя выбранный элемент также может быть текущим элементом.
В зависимости от указанной команды command, index также может стать частью текущего выделения.
См. также currentIndex() и select().
void QItemSelectionModel::setModel(QAbstractItemModel *model)
Устанавливает модель в model. Сигнал modelChanged() будет излучен.
Эта функция была добавлена в Qt 5.5.
См. также model() и modelChanged().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qitemselectionmodel.html