Spec-Zone.ru › Qt 6.1

Класс 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 &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 является 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 &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.

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

Примечание: Сигнал-уведомление для свойства 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

Spec-Zone.ru

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