Класс QItemSelectionModel
Класс QItemSelectionModel отслеживает выбранные элементы в представлении. Подробнее...
| Заголовок: | #include <QItemSelectionModel> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Наследует: | QObject |
Общедоступные типы
| Перечисление | SelectionFlag { NoUpdate, Clear, Select, Deselect, Toggle, …, ClearAndSelect } |
| Флаги | SelectionFlags |
Свойства
- selectedIndexes : const QModelIndexList
Общедоступные функции
| QItemSelectionModel(QAbstractItemModel *model, QObject *parent) | |
| QItemSelectionModel(QAbstractItemModel *model = nullptr) | |
| виртуальный | ~QItemSelectionModel() |
| bool | columnIntersectsSelection(int column, const QModelIndex &parent = QModelIndex()) const |
| QModelIndex | currentIndex() const |
| bool | hasSelection() const |
| bool | isColumnSelected(int column, const QModelIndex &parent = QModelIndex()) const |
| bool | isRowSelected(int row, const QModelIndex &parent = QModelIndex()) const |
| bool | isSelected(const QModelIndex &index) const |
| const QAbstractItemModel * | model() const |
| QAbstractItemModel * | model() |
| bool | rowIntersectsSelection(int row, const QModelIndex &parent = QModelIndex()) const |
| QModelIndexList | selectedColumns(int row = 0) const |
| QModelIndexList | selectedIndexes() const |
| QModelIndexList | selectedRows(int column = 0) const |
| const QItemSelection | selection() const |
| void | setModel(QAbstractItemModel *model) |
Общедоступные слоты
| виртуальный void | clear() |
| виртуальный void | clearCurrentIndex() |
| void | clearSelection() |
| виртуальный void | reset() |
| виртуальный void | select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command) |
| виртуальный void | select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
| виртуальный void | setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command) |
Сигналы
| 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) |
Защищенные функции
| void | emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection) |
Подробное описание
Класс 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 является typedef для QFlags<SelectionFlag>. Он хранит логическое ИЛИ комбинацию значений SelectionFlag.
Документация по свойствам
[read-only, since 5.5] selectedIndexes : const QModelIndexList
Это свойство было добавлено в Qt 5.5.
Функции доступа:
| QModelIndexList | selectedIndexes() const |
Сигнал-уведомление:
| void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
Документация по функциям-членам
QItemSelectionModel::QItemSelectionModel(QAbstractItemModel *model, QObject *parent)
Создаёт модель выбора, которая работает с указанной моделью элементов model с parent.
QItemSelectionModel::QItemSelectionModel(QAbstractItemModel *model = nullptr)
Создаёт модель выбора, которая работает с указанной моделью элементов model.
[virtual slot] void QItemSelectionModel::clear()
Очищает модель выбора. Издаёт selectionChanged() и currentChanged().
[virtual slot] void QItemSelectionModel::clearCurrentIndex()
Очищает текущий индекс. Издаёт currentChanged().
[slot] void QItemSelectionModel::clearSelection()
Очищает выбор в модели выбора. Издаёт selectionChanged().
[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().
[signal] void QItemSelectionModel::currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот сигнал издаётся, если текущий элемент изменяется, и его строка отличается от строки предыдущего текущего элемента.
Обратите внимание, что этот сигнал не будет издан при сбросе модели элементов.
См. также currentChanged(), currentColumnChanged(), currentIndex(), и setCurrentIndex().
[signal, since 5.5] void QItemSelectionModel::modelChanged(QAbstractItemModel *model)
Этот сигнал издаётся, когда модель model успешно установлена с помощью setModel().
Эта функция была добавлена в Qt 5.5.
См. также model() и setModel().
[virtual slot] void QItemSelectionModel::reset()
Очищает модель выбора. Не издаёт никаких сигналов.
[virtual slot] void QItemSelectionModel::select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command)
Выбирает элемент selection, используя указанную command, и издаёт selectionChanged().
См. также QItemSelectionModel::SelectionFlag.
[virtual slot] void QItemSelectionModel::select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
Выбирает элемент модели index, используя указанную command, и издаёт selectionChanged().
См. также QItemSelectionModel::SelectionFlags.
[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().
[virtual] QItemSelectionModel::~QItemSelectionModel()
Удаляет модель выбора.
END_OF_DOCUMENT_MARKER
[invokable] bool QItemSelectionModel::columnIntersectsSelection(int column, const QModelIndex &parent = QModelIndex()) const
Возвращает true , если в column с заданным parent выбраны какие-либо элементы.
Примечание: Начиная с Qt 5.15, значение по умолчанию для parent — это пустой индекс модели.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
QModelIndex QItemSelectionModel::currentIndex() const
Возвращает индекс элемента модели для текущего элемента или недействительный индекс, если текущего элемента нет.
См. также setCurrentIndex().
[protected] void QItemSelectionModel::emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection)
Сравнивает два выделения newSelection и oldSelection и испускает selectionChanged() с невыбранными и выбранными элементами.
bool QItemSelectionModel::hasSelection() const
Возвращает true , если модель выделения содержит какие-либо диапазоны выделения; в противном случае возвращает false.
[invokable] bool QItemSelectionModel::isColumnSelected(int column, const QModelIndex &parent = QModelIndex()) const
Возвращает true , если все элементы в column с заданным parent выбраны.
Обратите внимание, что эта функция обычно быстрее, чем вызов isSelected() для всех элементов в том же столбце, и что невыбираемые элементы игнорируются.
Примечание: Начиная с Qt 5.15, значение по умолчанию для parent — это пустой индекс модели.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] bool QItemSelectionModel::isRowSelected(int row, const QModelIndex &parent = QModelIndex()) const
Возвращает true , если все элементы в row с заданным parent выбраны.
Обратите внимание, что эта функция обычно быстрее, чем вызов isSelected() для всех элементов в той же строке, и что невыбираемые элементы игнорируются.
Примечание: Начиная с Qt 5.15, значение по умолчанию для parent — это пустой индекс модели.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] bool QItemSelectionModel::isSelected(const QModelIndex &index) const
Возвращает true , если заданный индекс элемента модели index выбран.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
const QAbstractItemModel *QItemSelectionModel::model() const
Возвращает модель элементов, к которой применяется модель выделения.
См. также setModel().
[since 5.5] QAbstractItemModel *QItemSelectionModel::model()
Возвращает модель элементов, к которой применяется модель выделения.
Эта функция была добавлена в Qt 5.5.
[invokable] bool QItemSelectionModel::rowIntersectsSelection(int row, const QModelIndex &parent = QModelIndex()) const
Возвращает true , если в row с заданным parent выбраны какие-либо элементы.
Примечание: Начиная с Qt 5.15, значение по умолчанию для parent — это пустой индекс модели.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] QModelIndexList QItemSelectionModel::selectedColumns(int row = 0) const
Возвращает индексы в заданной row для столбцов, где все строки выбраны.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также selectedIndexes() и selectedRows().
QModelIndexList QItemSelectionModel::selectedIndexes() const
Возвращает список всех индексов выбранных элементов модели. Список не содержит дубликатов и не отсортирован.
Примечание: Функция-геттер для свойства selectedIndexes.
[invokable] QModelIndexList QItemSelectionModel::selectedRows(int column = 0) const
Возвращает индексы в заданном column для строк, где все столбцы выбраны.
Примечание: Данную функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также selectedIndexes() и selectedColumns().
const QItemSelection QItemSelectionModel::selection() const
Возвращает диапазоны выделения, хранящиеся в модели выделения.
[since 5.5] 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-6.1/qitemselectionmodel.html