Класс QItemSelectionModel
Класс QItemSelectionModel отслеживает выделенные элементы в представлении. Подробнее...
| Заголовок: | #include <QItemSelectionModel> |
| qmake: | QT += core |
| Наследует: | QObject |
Типы публичного доступа
| перечисление | SelectionFlag { НетОбновления, Очистить, Выделить, ОтменитьВыделение, ..., ОчиститьИВыделить } |
| флаги | 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
Защищенные функции
| void | emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection) |
- 9 защищенных функций унаследованы от QObject
Дополнительные унаследованные члены
- 11 статических публичных членов унаследованы от QObject
Подробное описание
Класс QItemSelectionModel отслеживает выделенные элементы в представлении.
Класс QItemSelectionModel отслеживает выделенные элементы в представлении или в нескольких представлениях одного и того же модели. Также он отслеживает текущий выделенный элемент в представлении.
Класс QItemSelectionModel относится к моделям/представлениям Qt и входит в модель/представление Qt.
Выделенные элементы хранятся с помощью диапазонов. При необходимости изменить выделенные элементы используйте select() и передайте либо QItemSelection, либо QModelIndex и QItemSelectionModel::SelectionFlag.
Класс QItemSelectionModel использует двухступенчатый подход к управлению выделением, обрабатывая как выделенные элементы, подтверждённые действием, так и элементы, составляющие текущее выделение. Текущие выделенные элементы являются частью текущего интерактивного выделения (например, выделение резиновым прямоугольником или выделение с помощью клавиши Shift).
Чтобы обновить текущие выделенные элементы, используйте побитовое ИЛИ QItemSelectionModel::Current и любой другой SelectionFlags. Если вы опустите команду QItemSelectionModel::Current, будет создано новое текущее выделение, а предыдущее будет добавлено к общему выделению. Все функции работают с обеими слоями; например, selecteditems() вернет элементы из обоих слоёв.
Примечание: Начиная с версии 5.5, model, hasSelection и currentIndex являются свойствами метаобъектов.
См. также Модели/Представления Qt, 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.
Документация свойств
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, если в заданном column с данным parent есть какие-либо выбранные элементы.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[signal] void QItemSelectionModel::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот сигнал генерируется всякий раз, когда текущий элемент изменяется. Предыдущий индекс элемента модели 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, если все элементы выбраны в column с заданным parent.
Обратите внимание, что эта функция обычно быстрее, чем вызов isSelected() для всех элементов в том же столбце, и невыбираемые элементы игнорируются.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
bool QItemSelectionModel::isRowSelected(int row, const QModelIndex &parent) const
Возвращает true, если все элементы выбраны в row с заданным 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/archives/qt-5.11/qitemselectionmodel.html