Spec-Zone.ru › Qt

Класс 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)
virtual ~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)

Общедоступные слоты

virtual void clear()
virtual void clearCurrentIndex()
void clearSelection()
virtual void reset()
virtual void select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command)
virtual void select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
virtual void setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)

Сигналы

void currentChanged(const QModelIndex &current, const QModelIndex &previous)
void currentColumnChanged(const QModelIndex &current, const QModelIndex &previous)
void currentRowChanged(const QModelIndex &current, 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 — это псевдоним для 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 &current, const QModelIndex &previous)

Этот сигнал генерируется всякий раз, когда изменяется текущий элемент. Предыдущий индекс элемента модели заменяется индексом current в качестве текущего элемента выбора.

Обратите внимание, что этот сигнал не будет сгенерирован при сбросе модели элементов.

См. также currentIndex(), setCurrentIndex() и selectionChanged().

[signal] void QItemSelectionModel::currentColumnChanged(const QModelIndex &current, const QModelIndex &previous)

Этот сигнал генерируется, если текущий элемент изменяется, и его столбец отличается от столбца предыдущего текущего элемента.

Обратите внимание, что этот сигнал не будет сгенерирован при сбросе модели элементов.

См. также currentChanged(), currentRowChanged(), currentIndex() и setCurrentIndex().

[signal] void QItemSelectionModel::currentRowChanged(const QModelIndex &current, 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.

Обратите внимание, что текущий индекс изменяется независимо от выбора. Также обратите внимание, что этот сигнал не будет сгенерирован при сбросе модели элементов.

Элементы, которые остаются выбранными, но изменяют свой индекс, не включаются в selected и deselected. Таким образом, этот сигнал может быть сгенерирован с пустыми selected и deselected, если изменяются только индексы выбранных элементов.

Примечание: Сигнал-уведомление для свойства selectedIndexes.

См. также select() и currentChanged().

[virtual slot] void QItemSelectionModel::setCurrentIndex(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)

Устанавливает индекс элемента модели index в качестве текущего элемента и генерирует currentChanged(). Текущий элемент используется для навигации с помощью клавиатуры и индикации фокуса; он независим от любых выбранных элементов, хотя выбранный элемент также может быть текущим элементом.

В зависимости от указанной команды command, индекс index также может стать частью текущего выбора.

См. также currentIndex() и select().

[virtual] QItemSelectionModel::~QItemSelectionModel()

Уничтожает модель выделения.

[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.2/qitemselectionmodel.html

Spec-Zone.ru

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