Класс QAbstractItemView
Класс QAbstractItemView предоставляет базовые возможности для классов представления элементов. Подробнее...
| Заголовок: | #include <QAbstractItemView> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QAbstractScrollArea |
| Наследуется от: | QColumnView, QHeaderView, QListView, QTableView, и QTreeView |
Открытые типы
| Перечисление | DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove } |
| Перечисление | EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers } |
| Флаги | EditTriggers |
| Перечисление | ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter } |
| Перечисление | ScrollMode { ScrollPerItem, ScrollPerPixel } |
| Перечисление | SelectionBehavior { SelectItems, SelectRows, SelectColumns } |
| Перечисление | SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection } |
Свойства
|
|
Открытые функции
| QAbstractItemView(QWidget *parent = nullptr) | |
| virtual | ~QAbstractItemView() |
| bool | alternatingRowColors() const |
| int | autoScrollMargin() const |
| void | closePersistentEditor(const QModelIndex &index) |
| QModelIndex | currentIndex() const |
| Qt::DropAction | defaultDropAction() const |
| QAbstractItemView::DragDropMode | dragDropMode() const |
| bool | dragDropOverwriteMode() const |
| bool | dragEnabled() const |
| QAbstractItemView::EditTriggers | editTriggers() const |
| bool | hasAutoScroll() const |
| QAbstractItemView::ScrollMode | horizontalScrollMode() const |
| QSize | iconSize() const |
| virtual QModelIndex | indexAt(const QPoint &point) const = 0 |
| QWidget * | indexWidget(const QModelIndex &index) const |
| bool | isPersistentEditorOpen(const QModelIndex &index) const |
| QAbstractItemDelegate * | itemDelegate() const |
| QAbstractItemDelegate * | itemDelegateForColumn(int column) const |
| virtual QAbstractItemDelegate * | itemDelegateForIndex(const QModelIndex &index) const |
| QAbstractItemDelegate * | itemDelegateForRow(int row) const |
| virtual void | keyboardSearch(const QString &search) |
| QAbstractItemModel * | model() const |
| void | openPersistentEditor(const QModelIndex &index) |
| void | resetHorizontalScrollMode() |
| void | resetVerticalScrollMode() |
| QModelIndex | rootIndex() const |
| virtual void | scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) = 0 |
| QAbstractItemView::SelectionBehavior | selectionBehavior() const |
| QAbstractItemView::SelectionMode | selectionMode() const |
| QItemSelectionModel * | selectionModel() const |
| void | setAlternatingRowColors(bool enable) |
| void | setAutoScroll(bool enable) |
| void | setAutoScrollMargin(int margin) |
| void | setDefaultDropAction(Qt::DropAction dropAction) |
| void | setDragDropMode(QAbstractItemView::DragDropMode behavior) |
| void | setDragDropOverwriteMode(bool overwrite) |
| void | setDragEnabled(bool enable) |
| void | setDropIndicatorShown(bool enable) |
| void | setEditTriggers(QAbstractItemView::EditTriggers triggers) |
| void | setHorizontalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | setIconSize(const QSize &size) |
| void | setIndexWidget(const QModelIndex &index, QWidget *widget) |
| void | setItemDelegate(QAbstractItemDelegate *delegate) |
| void | setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate) |
| void | setItemDelegateForRow(int row, QAbstractItemDelegate *delegate) |
| virtual void | setModel(QAbstractItemModel *model) |
| void | setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior) |
| void | setSelectionMode(QAbstractItemView::SelectionMode mode) |
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) |
| void | setTabKeyNavigation(bool enable) |
| void | setTextElideMode(Qt::TextElideMode mode) |
| void | setVerticalScrollMode(QAbstractItemView::ScrollMode mode) |
| bool | showDropIndicator() const |
| виртуальный int | sizeHintForColumn(int column) const |
| QSize | sizeHintForIndex(const QModelIndex &index) const |
| виртуальный int | sizeHintForRow(int row) const |
| bool | tabKeyNavigation() const |
| Qt::TextElideMode | textElideMode() const |
| QAbstractItemView::ScrollMode | verticalScrollMode() const |
| виртуальный QRect | visualRect(const QModelIndex &index) const = 0 |
Реализованные публичные функции
| виртуальный QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
Публичные слоты
| void | clearSelection() |
| void | edit(const QModelIndex &index) |
| виртуальный void | reset() |
| void | прокрутитьВниз() |
| void | прокрутитьВверх() |
| виртуальный void | выделитьВсе() |
| void | установитьТекущийИндекс(const QModelIndex &index) |
| виртуальный void | установитьКорневойИндекс(const QModelIndex &index) |
| void | обновить(const QModelIndex &index) |
Сигналы
| void | activated(const QModelIndex &index) |
| void | clicked(const QModelIndex &index) |
| void | doubleClicked(const QModelIndex &index) |
| void | entered(const QModelIndex &index) |
| void | iconSizeChanged(const QSize &size) |
| void | pressed(const QModelIndex &index) |
| void | viewportEntered() |
Защищенные типы
| перечисление | CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious } |
| перечисление | DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport } |
| перечисление | State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState } |
Защищенные функции
| QPoint | dirtyRegionOffset() const |
| QAbstractItemView::DropIndicatorPosition | dropIndicatorPosition() const |
| виртуальный bool | edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event) |
| void | executeDelayedItemsLayout() |
| виртуальный int | horizontalOffset() const = 0 |
| виртуальный void | initViewItemOption(QStyleOptionViewItem *option) const |
| виртуальный bool | isIndexHidden(const QModelIndex &index) const = 0 |
| виртуальный QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0 |
| void | scheduleDelayedItemsLayout() |
| void | scrollDirtyRegion(int dx, int dy) |
| виртуальный QModelIndexList | selectedIndexes() const |
| виртуальный QItemSelectionModel::SelectionFlags | selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const |
| void | setDirtyRegion(const QRegion ®ion) |
| виртуальный void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0 |
| void | setState(QAbstractItemView::State state) |
| виртуальный void | startDrag(Qt::DropActions supportedActions) |
| QAbstractItemView::State | state() const |
| виртуальный int | verticalOffset() const = 0 |
| виртуальный QRegion | visualRegionForSelection(const QItemSelection &selection) const = 0 |
Реализованные защищенные функции
| виртуальный void | dragEnterEvent(QDragEnterEvent *event) override |
| виртуальный void | dragLeaveEvent(QDragLeaveEvent *event) override |
| виртуальный void | dragMoveEvent(QDragMoveEvent *event) override |
| виртуальный void | dropEvent(QDropEvent *event) override |
| виртуальный bool | event(QEvent *event) override |
| виртуальный bool | eventFilter(QObject *object, QEvent *event) override |
| виртуальный void | focusInEvent(QFocusEvent *event) override |
| виртуальный bool | focusNextPrevChild(bool next) override |
| виртуальный void | focusOutEvent(QFocusEvent *event) override |
| виртуальный void | inputMethodEvent(QInputMethodEvent *event) override |
| виртуальный void | keyPressEvent(QKeyEvent *event) override |
| виртуальный void | mouseDoubleClickEvent(QMouseEvent *event) override |
| виртуальный void | mouseMoveEvent(QMouseEvent *event) override |
| виртуальный void | mousePressEvent(QMouseEvent *event) override |
| виртуальный void | mouseReleaseEvent(QMouseEvent *event) override |
| виртуальный void | resizeEvent(QResizeEvent *event) override |
| виртуальный void | timerEvent(QTimerEvent *event) override |
| виртуальный bool | viewportEvent(QEvent *event) override |
| виртуальный QSize | viewportSizeHint() const override |
Защищенные слоты
| виртуальный void | closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint) |
| виртуальный void | commitData(QWidget *editor) |
| виртуальный void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) |
| виртуальный void | dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) |
| виртуальный void | editorDestroyed(QObject *editor) |
| виртуальный void | rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) |
| виртуальный void | rowsInserted(const QModelIndex &parent, int start, int end) |
| виртуальный void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
| виртуальный void | updateGeometries() |
Подробное описание
Класс QAbstractItemView является базовым классом для всех стандартных представлений, использующих QAbstractItemModel. QAbstractItemView — абстрактный класс и не может быть непосредственно инстанцирован. Он предоставляет стандартный интерфейс для взаимодействия с моделями через механизм сигналов и слотов, позволяя подклассам оставаться синхронизированными с изменениями в моделях. Этот класс обеспечивает стандартную поддержку навигации с помощью клавиатуры и мыши, прокрутки области просмотра, редактирования элементов и выбора. Навигация с помощью клавиатуры реализует эту функциональность:
| Клавиши | Функциональность |
|---|---|
| Стрелки | Изменяет текущий элемент и выбирает его. |
| Ctrl+Стрелки | Изменяет текущий элемент, но не выбирает его. |
| Shift+Стрелки | Изменяет текущий элемент и выбирает его. Ранее выбранные элементы не отменяются. |
| Ctrl+Пробел | Переключает выбор текущего элемента. |
| Tab/Backtab | Изменяет текущий элемент на следующий/предыдущий. |
| Home/End | Выбирает первый/последний элемент в модели. |
| Page Up/Page Down | Прокручивает отображаемые строки вверх/вниз на количество видимых строк в представлении. |
| Ctrl+A | Выбирает все элементы в модели. |
Обратите внимание, что в таблице предполагается, что режим выбора (selection mode) позволяет выполнять операции. Например, вы не можете выбирать элементы, если режим выбора — QAbstractItemView::NoSelection.
Класс QAbstractItemView — один из классов представлений и входит в модельно-представленческую систему Qt.
Классы представлений, наследующие от QAbstractItemView, должны реализовать только собственную функциональность, специфичную для представлений, такую как отрисовка элементов, возвращение геометрии элементов, поиск элементов и т.д.
QAbstractItemView предоставляет общие слоты, такие как edit() и setCurrentIndex(). Также предоставляется множество защищенных слотов, включая dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged() и currentChanged().
Корневой элемент возвращается методом rootIndex(), а текущий элемент — методом currentIndex(). Чтобы убедиться, что элемент виден, используйте scrollTo().
Некоторые функции QAbstractItemView связаны с прокруткой, например, setHorizontalScrollMode() и setVerticalScrollMode(). Для установки диапазона полос прокрутки можно, например, переопределить функцию resizeEvent() представления:
void MyView::resizeEvent(QResizeEvent *event) {
horizontalScrollBar()->setRange(0, realWidth - width());
...
} Обратите внимание, что диапазон обновляется только после отображения виджета.
Несколько других функций связаны с управлением выбором; например, setSelectionMode() и setSelectionBehavior(). Этот класс предоставляет модель выбора по умолчанию (selectionModel()), но её можно заменить, используя setSelectionModel() с экземпляром QItemSelectionModel.
Для полного управления отображением и редактированием элементов можно указать делегата с помощью setItemDelegate().
QAbstractItemView предоставляет множество защищенных функций. Некоторые из них связаны с редактированием, например, edit() и commitData(), а другие — с обработкой событий клавиатуры и мыши.
Примечание: Если вы наследуете от QAbstractItemView и намерены обновлять содержимое области просмотра, используйте viewport->update() вместо update(), так как все операции рисования выполняются в области просмотра.
См. также Классы представлений, Модель/Представление, QAbstractItemModel и Пример графика.
Документация по типам членов
enum QAbstractItemView::CursorAction
Этот перечисление описывает различные способы перемещения курсора между элементами,
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::MoveUp |
0 |
Переместиться к элементу, расположенному над текущим. |
QAbstractItemView::MoveDown |
1 |
Переместиться к элементу, расположенному под текущим. |
QAbstractItemView::MoveLeft |
2 |
Переместиться к элементу слева от текущего. |
QAbstractItemView::MoveRight |
3 |
Переместиться к элементу справа от текущего. |
QAbstractItemView::MoveHome |
4 |
Переместиться к элементу в верхнем левом углу. |
QAbstractItemView::MoveEnd |
5 |
Переместиться к элементу в нижнем правом углу. |
QAbstractItemView::MovePageUp |
6 |
Переместиться на одну страницу вверх относительно текущего элемента. |
QAbstractItemView::MovePageDown |
7 |
Переместиться на одну страницу вниз относительно текущего элемента. |
QAbstractItemView::MoveNext |
8 |
Переместиться к элементу после текущего. |
QAbstractItemView::MovePrevious |
9 |
Переместиться к элементу перед текущим. |
См. также moveCursor().
enum QAbstractItemView::DragDropMode
Описывает различные события перетаскивания и выгрузки, на которые может реагировать виджет. По умолчанию виджет не поддерживает перетаскивание или выгрузку (NoDragDrop).
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::NoDragDrop |
0 |
Не поддерживает перетаскивание или выгрузку. |
QAbstractItemView::DragOnly |
1 |
Виджет поддерживает перетаскивание собственных элементов. |
QAbstractItemView::DropOnly |
2 |
Виджет принимает выгрузку. |
QAbstractItemView::DragDrop |
3 |
Виджет поддерживает и перетаскивание, и выгрузку. |
QAbstractItemView::InternalMove |
4 |
Виджет принимает только операции перемещения (не копирования) из себя самого. |
Обратите внимание, что используемая модель должна поддерживать операции перетаскивания и выгрузки.
См. также setDragDropMode() и Использование перетаскивания и выгрузки с представлениями элементов.
enum QAbstractItemView::DropIndicatorPosition
Это перечисление указывает положение индикатора выгрузки по отношению к индексу в текущей позиции указателя мыши:
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::OnItem |
0 |
Элемент будет выгружен на индекс. |
QAbstractItemView::AboveItem |
1 |
Элемент будет выгружен над индексом. |
QAbstractItemView::BelowItem |
2 |
Элемент будет выгружен под индексом. |
QAbstractItemView::OnViewport |
3 |
Элемент будет выгружен на область просмотра без элементов. Способ обработки каждого представления элементов, выгруженных в область просмотра, зависит от поведения используемой базовой модели. |
enum QAbstractItemView::EditTriggerflags QAbstractItemView::EditTriggers
Это перечисление описывает действия, которые инициируют редактирование элементов.
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::NoEditTriggers |
0 |
Редактирование невозможно. |
QAbstractItemView::CurrentChanged |
1 |
Редактирование начинается при изменении текущего элемента. |
QAbstractItemView::DoubleClicked |
2 |
Редактирование начинается при двойном щелчке по элементу. |
QAbstractItemView::SelectedClicked |
4 |
Редактирование начинается при щелчке по уже выбранному элементу. |
QAbstractItemView::EditKeyPressed |
8 |
Редактирование начинается, когда нажата платформа клавиши редактирования над элементом. |
QAbstractItemView::AnyKeyPressed |
16 |
Редактирование начинается при нажатии любой клавиши над элементом. |
QAbstractItemView::AllEditTriggers |
31 |
Редактирование начинается для всех вышеуказанных действий. |
Тип EditTriggers — это псевдоним для QFlags<EditTrigger>. Он хранит логическое ИЛИ сочетание значений EditTrigger.
enum QAbstractItemView::ScrollHint
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::EnsureVisible |
0 |
Прокрутить, чтобы обеспечить видимость элемента. |
QAbstractItemView::PositionAtTop |
1 |
Прокрутить, чтобы поместить элемент в верхнюю часть области просмотра. |
QAbstractItemView::PositionAtBottom |
2 |
Прокрутить, чтобы поместить элемент в нижнюю часть области просмотра. |
QAbstractItemView::PositionAtCenter |
3 |
Прокрутить, чтобы поместить элемент в центр области просмотра. |
enum QAbstractItemView::ScrollMode
Описывает, как должна работать прокрутка. При установке режима прокрутки ScrollPerPixel размер одного шага будет настраиваться автоматически, если он не был явно установлен с помощью setSingleStep(). Автоматическая настройка может быть восстановлена путем установки размера шага в -1.
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::ScrollPerItem |
0 |
Виджет будет прокручивать содержимое на один элемент за раз. |
QAbstractItemView::ScrollPerPixel |
1 |
Виджет будет прокручивать содержимое на один пиксель за раз. |
enum QAbstractItemView::SelectionBehavior
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::SelectItems |
0 |
Выбор отдельных элементов. |
QAbstractItemView::SelectRows |
1 |
Выбор только строк. |
QAbstractItemView::SelectColumns |
2 |
Выбор только столбцов. |
enum QAbstractItemView::SelectionMode
Это перечисление указывает, как виджет реагирует на пользовательский выбор:
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::SingleSelection |
1 |
При выборе пользователем элемента, любой ранее выбранный элемент становится невыбранным. Пользователь может отменить выбор выбранного элемента, нажав клавишу Ctrl при щелчке по выбранному элементу. |
QAbstractItemView::ContiguousSelection |
4 |
При выборе пользователем элемента стандартным способом, выделение очищается, и выбирается новый элемент. Однако, если пользователь нажимает клавишу Shift при щелчке по элементу, все элементы между текущим элементом и щелкнутым элементом выбираются или убираются с выделения, в зависимости от состояния щелкнутого элемента. |
QAbstractItemView::ExtendedSelection |
3 |
При выборе пользователем элемента стандартным способом, выделение очищается, и выбирается новый элемент. Однако, если пользователь нажимает клавишу Ctrl при щелчке по элементу, щелкнутый элемент переключается в обратное состояние, а все остальные элементы остаются без изменений. Если пользователь нажимает клавишу Shift при щелчке по элементу, все элементы между текущим элементом и щелкнутым элементом выбираются или убираются с выделения, в зависимости от состояния щелкнутого элемента. Несколько элементов можно выбрать, перетаскивая мышь по ним. |
QAbstractItemView::MultiSelection |
2 |
При выборе пользователем элемента стандартным способом, состояние выделения этого элемента переключается, а другие элементы остаются без изменений. Несколько элементов можно переключить, перетаскивая мышь по ним. |
QAbstractItemView::NoSelection |
0 |
Элементы не могут быть выбраны. |
Наиболее часто используемые режимы — SingleSelection и ExtendedSelection.
enum QAbstractItemView::State
Описывает различные состояния, в которых может находиться виджет. Это обычно интересно только при переопределении собственного виджета.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::NoState |
0 |
Это стандартное состояние. |
QAbstractItemView::DraggingState |
1 |
Пользователь перетаскивает элементы. |
QAbstractItemView::DragSelectingState |
2 |
Пользователь выбирает элементы. |
QAbstractItemView::EditingState |
3 |
Пользователь редактирует элемент в редакторе виджета. |
QAbstractItemView::ExpandingState |
4 |
Пользователь открывает ветвь элементов. |
QAbstractItemView::CollapsingState |
5 |
Пользователь закрывает ветвь элементов. |
QAbstractItemView::AnimatingState |
6 |
Элемент отображения выполняет анимацию. |
Документация свойств
alternatingRowColors : bool
Это свойство определяет, следует ли рисовать фон с использованием чередующихся цветов.
Если это свойство true, фон элемента будет отрисовываться с использованием QPalette::Base и QPalette::AlternateBase; в противном случае фон будет отрисовываться с использованием цвета QPalette::Base.
По умолчанию это свойство false.
Функции доступа:
| bool | alternatingRowColors() const |
| void | setAlternatingRowColors(bool enable) |
autoScroll : bool
Это свойство определяет, включена ли автопрокрутка при перетаскивании.
Если это свойство установлено в значение true (по умолчанию), QAbstractItemView автоматически прокручивает содержимое представления, если пользователь перетаскивает в пределах 16 пикселей от края области просмотра. Если текущий элемент изменяется, представление автоматически прокручивается, чтобы убедиться, что текущий элемент полностью виден.
Это свойство работает только в том случае, если область просмотра принимает перетаскивание. Автопрокрутка выключается, если это свойство установлено в значение false.
Функции доступа:
| bool | hasAutoScroll() const |
| void | setAutoScroll(bool enable) |
autoScrollMargin : int
Это свойство определяет размер области, при достижении которой срабатывает автопрокрутка.
Это свойство управляет размером области у края области просмотра, которая запускает автопрокрутку. Значение по умолчанию составляет 16 пикселей.
Функции доступа:
| int | autoScrollMargin() const |
| void | setAutoScrollMargin(int margin) |
defaultDropAction : Qt::DropAction
Это свойство определяет действие перетаскивания по умолчанию, которое будет использоваться в QAbstractItemView::drag()
Если свойство не установлено, действие перетаскивания — CopyAction, если поддерживаемые действия включают CopyAction.
Функции доступа:
| Qt::DropAction | defaultDropAction() const |
| void | setDefaultDropAction(Qt::DropAction dropAction) |
См. также showDropIndicator и dragDropOverwriteMode.
dragDropMode : DragDropMode
Это свойство определяет обработку событий перетаскивания и опускания, выполняемых представлением.
Функции доступа:
| QAbstractItemView::DragDropMode | dragDropMode() const |
| void | setDragDropMode(QAbstractItemView::DragDropMode behavior) |
См. также showDropIndicator и dragDropOverwriteMode.
dragDropOverwriteMode : bool
Это свойство определяет поведение представления при перетаскивании и опускании.
Если его значение true, выбранные данные перезапишут существующие данные элемента при опускании, а при перемещении данных элемент очистится. Если его значение false, выбранные данные будут вставлены как новый элемент при опускании данных. При перемещении данных элемент также удаляется.
Значение по умолчанию false, как в подклассах QListView и QTreeView. В подклассе QTableView, с другой стороны, свойство установлено в true.
Примечание: это не предназначено для предотвращения перезаписи элементов. Реализация модели метода flags() должна это делать, не возвращая Qt::ItemIsDropEnabled.
Функции доступа:
| bool | dragDropOverwriteMode() const |
| void | setDragDropOverwriteMode(bool overwrite) |
См. также dragDropMode.
dragEnabled : bool
Это свойство определяет, поддерживает ли представление перетаскивание собственных элементов.
Функции доступа:
| bool | dragEnabled() const |
| void | setDragEnabled(bool enable) |
См. также showDropIndicator, DragDropMode, dragDropOverwriteMode и acceptDrops.
editTriggers : EditTriggers
Это свойство определяет, какие действия инициируют редактирование элемента.
Это свойство представляет собой набор флагов, определенных в EditTrigger, объединённых оператором OR. Представление инициирует редактирование элемента только в том случае, если выполненное действие указано в этом свойстве.
Функции доступа:
| QAbstractItemView::EditTriggers | editTriggers() const |
| void | setEditTriggers(QAbstractItemView::EditTriggers triggers) |
horizontalScrollMode : ScrollMode
режим прокрутки представления по горизонтали
Это свойство управляет тем, как представление прокручивает содержимое по горизонтали. Прокрутка может выполняться по пикселям или по элементам. Значение по умолчанию взято из стиля через стиль подсказку QStyle::SH_ItemView_ScrollMode.
Функции доступа:
| QAbstractItemView::ScrollMode | horizontalScrollMode() const |
| void | setHorizontalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | resetHorizontalScrollMode() |
iconSize : QSize
Это свойство определяет размер иконок элементов.
Установка этого свойства, когда представление видно, приведет к повторному выводу элементов.
Функции доступа:
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
Сигнал уведомления:
| void | iconSizeChanged(const QSize &size) |
selectionBehavior : SelectionBehavior
Это свойство определяет поведение выбора в представлении.
Это свойство определяет, как выполняются выделения: по отдельным элементам, строкам или столбцам.
Функции доступа:
| QAbstractItemView::SelectionBehavior | selectionBehavior() const |
| void | setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior) |
См. также SelectionMode и SelectionBehavior.
selectionMode : SelectionMode
Это свойство определяет режим выбора в представлении.
Это свойство определяет, можно ли выбрать один или несколько элементов, и в случае выбора нескольких элементов, должен ли выбор быть непрерывным диапазоном элементов.
Функции доступа:
| QAbstractItemView::SelectionMode | selectionMode() const |
| void | setSelectionMode(QAbstractItemView::SelectionMode mode) |
См. также SelectionMode и SelectionBehavior.
showDropIndicator : bool
Это свойство определяет, отображается ли индикатор перемещения при перетаскивании и падении элементов.
Функции доступа:
| bool | showDropIndicator() const |
| void | setDropIndicatorShown(bool enable) |
См. также dragEnabled, DragDropMode, dragDropOverwriteMode и acceptDrops.
tabKeyNavigation : bool
Это свойство определяет, включена ли навигация по элементам с помощью клавиш Tab и Backtab.
Функции доступа:
| bool | tabKeyNavigation() const |
| void | setTabKeyNavigation(bool enable) |
textElideMode : Qt::TextElideMode
Это свойство определяет позицию многоточия "..." в усеченном тексте.
Значение по умолчанию для всех представлений элементов — Qt::ElideRight.
Функции доступа:
| Qt::TextElideMode | textElideMode() const |
| void | setTextElideMode(Qt::TextElideMode mode) |
verticalScrollMode : ScrollMode
способ прокрутки содержимого представления по вертикали
Это свойство управляет прокруткой содержимого представления по вертикали. Прокрутка может выполняться по пикселям или по элементам. Значение по умолчанию берётся из стиля через стилевой признак QStyle::SH_ItemView_ScrollMode.
Функции доступа:
| QAbstractItemView::ScrollMode | verticalScrollMode() const |
| void | setVerticalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | resetVerticalScrollMode() |
Документация по функциям-членам
QAbstractItemView::QAbstractItemView(QWidget *parent = nullptr)
Создаёт абстрактное представление элементов с заданным parent.
[signal] void QAbstractItemView::activated(const QModelIndex &index)
Этот сигнал испускается, когда пользователь активирует элемент, указанный индексом index. Способ активации элементов зависит от платформы; например, одиночным или двойным щелчком мыши по элементу или нажатием клавиши Ввод, когда элемент является текущим.
См. также clicked(), doubleClicked(), entered() и pressed().
[slot] void QAbstractItemView::clearSelection()
Отменяет выбор всех выделенных элементов. Текущий индекс не изменится.
См. также setSelection() и selectAll().
[signal] void QAbstractItemView::clicked(const QModelIndex &index)
Этот сигнал испускается при щелчке левой кнопкой мыши. Элемент, по которому был наведён курсор, задаётся индексом index. Сигнал испускается только при наличии действительного индекса.
См. также activated(), doubleClicked(), entered() и pressed().
[virtual protected slot] void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)
Закрывает заданный editor и освобождает его. hint используется для указания того, как представлению следует реагировать на завершение операции редактирования. Например, подсказка может указывать, что следующий элемент в представлении должен открыться для редактирования.
См. также edit() и commitData().
[virtual protected slot] void QAbstractItemView::commitData(QWidget *editor)
Записывает данные из editor в модель.
См. также closeEditor().
[virtual protected slot] void QAbstractItemView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот слот вызывается, когда новый элемент становится текущим. Предыдущий текущий элемент задаётся индексом previous, а новый — индексом current.
Если вы хотите узнать о изменениях в элементах, см. сигнал dataChanged().
[virtual protected slot] void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())
Этот слот вызывается, когда элементы с заданными roles изменяются в модели. Изменённые элементы — от topLeft до bottomRight включительно. Если изменился только один элемент, topLeft == bottomRight.
roles, которые были изменены, могут быть пустым контейнером (что означает изменение всего), или непустым контейнером с подмножеством изменённых ролей.
Примечание: : Qt::ToolTipRole не учитывается сигналом dataChanged() в представлениях, предоставляемых Qt.
[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)
Этот сигнал испускается при двойном щелчке кнопкой мыши. Элемент, по которому был произведён двойной щелчок, задаётся индексом index. Сигнал испускается только при наличии действительного индекса.
См. также clicked() и activated().
[slot] void QAbstractItemView::edit(const QModelIndex &index)
Начинает редактирование элемента, соответствующего заданному индексу index, если он редактируемый.
Обратите внимание, что эта функция не изменяет текущий индекс. Поскольку текущий индекс определяет следующие и предыдущие элементы для редактирования, пользователи могут обнаружить, что навигация с помощью клавиатуры не работает как ожидалось. Для обеспечения согласованного поведения навигации вызовите setCurrentIndex() перед этой функцией с тем же индексом модели.
См. также QModelIndex::flags().
[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)
Этот метод вызывается, когда заданный editor был уничтожен.
См. также closeEditor().
[signal] void QAbstractItemView::entered(const QModelIndex &index)
Этот сигнал испускается, когда курсор мыши попадает на элемент, указанный индексом index. Для работы этой функции требуется отслеживание курсора мыши.
См. также viewportEntered(), activated(), clicked(), doubleClicked() и pressed().
[signal] void QAbstractItemView::pressed(const QModelIndex &index)
Этот сигнал испускается при нажатии кнопки мыши. Элемент, по которому была нажата кнопка мыши, задаётся индексом index. Сигнал испускается только при наличии действительного индекса.
Используйте функцию QGuiApplication::mouseButtons() для получения состояния кнопок мыши.
См. также activated(), clicked(), doubleClicked() и entered().
[virtual slot] void QAbstractItemView::reset()
Сбросить внутреннее состояние представления.
Предупреждение: Эта функция сбросит открытые редакторы, позиции полос прокрутки, выделения и т. д. Существующие изменения не будут сохранены. Если вы хотите сохранить изменения при сбросе представления, вы можете переопределить эту функцию, сохранить свои изменения, а затем вызвать реализацию базового класса.
[virtual protected slot] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Этот слот вызывается, когда строки собираются быть удалены. Удаляемые строки находятся под заданным parent от start до end включительно.
См. также rowsInserted().
[virtual protected slot] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)
Этот слот вызывается, когда вставляются строки. Новые строки находятся под заданным parent от start до end включительно. Реализация базового класса вызывает fetchMore() у модели, чтобы проверить наличие дополнительных данных.
См. также rowsAboutToBeRemoved().
[slot] void QAbstractItemView::scrollToBottom()
Прокручивает представление до самого низа.
См. также scrollTo() и scrollToTop().
[slot] void QAbstractItemView::scrollToTop()
Прокручивает представление до самого верха.
См. также scrollTo() и scrollToBottom().
[virtual slot] void QAbstractItemView::selectAll()
Выделяет все элементы в представлении. Эта функция будет использовать поведение выделения, установленное в представлении.
См. также setSelection(), selectedIndexes() и clearSelection().
[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Этот слот вызывается при изменении выделения. Предыдущее выделение (которое может быть пустым) задано deselected, а новое выделение — selected.
См. также setSelection().
[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)
Устанавливает текущим элементом элемент по индексу index.
Если режим текущего выделения не NoSelection, элемент также выделяется. Обратите внимание, что эта функция также обновляет начальную позицию для любых новых выделений, которые выполняет пользователь.
Чтобы установить элемент текущим без его выделения, вызовите
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
См. также currentIndex(), currentChanged() и selectionMode.
[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)
Устанавливает корневой элемент в элемент по заданному index.
См. также rootIndex().
[slot] void QAbstractItemView::update(const QModelIndex &index)
Обновляет область, занимаемую заданным index.
[virtual protected slot] void QAbstractItemView::updateGeometries()
Обновляет геометрию дочерних виджетов представления.
[signal] void QAbstractItemView::viewportEntered()
Этот сигнал излучается, когда указатель мыши входит в область просмотра. Для работы этой функции необходимо включить отслеживание мыши.
См. также entered().
[virtual] QAbstractItemView::~QAbstractItemView()
Уничтожает представление.
void QAbstractItemView::closePersistentEditor(const QModelIndex &index)
Закрывает постоянный редактор для элемента по заданному index.
См. также openPersistentEditor() и isPersistentEditorOpen().
QModelIndex QAbstractItemView::currentIndex() const
Возвращает индекс модели текущего элемента.
См. также setCurrentIndex().
[protected] QPoint QAbstractItemView::dirtyRegionOffset() const
Возвращает смещение грязных областей в представлении.
Если вы используете scrollDirtyRegion() и реализуете paintEvent() в подклассе QAbstractItemView, вы должны перевести область, заданную событием рисования, со смещением, возвращенным этой функцией.
См. также scrollDirtyRegion() и setDirtyRegion().
[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)
Переопределяет: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).
Эта функция вызывается с заданным event, когда операция перетаскивания и опускания входит в виджет. Если перетаскивание происходит над допустимым местом опускания (например, над элементом, принимающим опускания), событие принимается; в противном случае оно игнорируется.
См. также dropEvent() и startDrag().
[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)
Переопределяет: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).
Эта функция вызывается, когда элемент, который перетаскивается, покидает представление. Событие event описывает состояние операции перетаскивания и опускания.
[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)
Переопределяет: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).
Эта функция непрерывно вызывается с заданным event во время операции перетаскивания и опускания над виджетом. Она может привести к прокрутке представления, если, например, пользователь перетаскивает выделение к правому или нижнему краю представления. В этом случае событие будет принято; в противном случае оно будет проигнорировано.
См. также dropEvent() и startDrag().
[override virtual protected] void QAbstractItemView::dropEvent(QDropEvent *event)
Переопределяет: QAbstractScrollArea::dropEvent(QDropEvent *event).
Эта функция вызывается с заданным event при возникновении события опускания над виджетом. Если модель принимает позицию события опускания, событие принимается; в противном случае оно игнорируется.
См. также startDrag().
[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const
Возвращает положение индикатора опускания относительно ближайшего элемента.
[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
Начинает редактирование элемента по индексу index, создавая редактор при необходимости, и возвращает true если состояние представления State теперь EditingState; в противном случае возвращает false. Действие, вызвавшее процесс редактирования, описывается trigger, а связанное событие задаётся event.
Редактирование можно принудительно запустить, задав trigger как QAbstractItemView::AllEditTriggers.
См. также closeEditor().
[override virtual protected] bool QAbstractItemView::event(QEvent *event)
Переопределяет: QAbstractScrollArea::event(QEvent *event).
[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)
Переопределяет: QObject::eventFilter(QObject *watched, QEvent *event).
[protected] void QAbstractItemView::executeDelayedItemsLayout()
Выполняет запланированные макеты без ожидания начала обработки событий.
См. также scheduleDelayedItemsLayout().
[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)
Переопределяет: QWidget::focusInEvent(QFocusEvent *event).
Этот метод вызывается с заданным event, когда виджет получает фокус. По умолчанию событие игнорируется.
См. также setFocus() и focusOutEvent().
[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)
Переопределяет: QWidget::focusNextPrevChild(bool next).
[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)
Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).
Этот метод вызывается с заданным event, когда виджет теряет фокус. По умолчанию событие игнорируется.
См. также clearFocus() и focusInEvent().
[pure virtual protected] int QAbstractItemView::horizontalOffset() const
Возвращает горизонтальное смещение представления.
В базовом классе это чисто виртуальная функция.
См. также verticalOffset().
[pure virtual] QModelIndex QAbstractItemView::indexAt(const QPoint &point) const
Возвращает индекс модели элемента в координатах области просмотра point.
В базовом классе это чисто виртуальная функция.
См. также visualRect().
QWidget *QAbstractItemView::indexWidget(const QModelIndex &index) const
Возвращает виджет для элемента по заданному index.
См. также setIndexWidget().
[virtual protected, since 6.0] void QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const
Инициализирует структуру option с палитрой, шрифтом, состоянием, выравниванием и другими параметрами представления.
Примечание: Реализации этого метода должны проверять версию полученной структуры, заполнять все члены, с которыми знакома реализация, и устанавливать член version в значение, поддерживаемое реализацией, перед возвращением.
Этот метод был добавлен в Qt 6.0.
[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)
Переопределяет: QWidget::inputMethodEvent(QInputMethodEvent *event).
[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const
Переопределяет: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const
Возвращает true , если элемент, на который указывает данный index, скрыт в представлении, в противном случае возвращает false.
Скрытие — функция, специфичная для представления. Например, в TableView столбец может быть помечен как скрытый, а строка в TreeView.
В базовом классе это чисто виртуальная функция.
[since 5.10] bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const
Возвращает, открыт ли постоянный редактор для элемента по индексу index.
Этот метод был добавлен в Qt 5.10.
См. также openPersistentEditor() и closePersistentEditor().
QAbstractItemDelegate *QAbstractItemView::itemDelegate() const
Возвращает делегат элемента, используемый этим представлением и моделью. Это либо делегат, установленный с помощью setItemDelegate(), либо делегат по умолчанию.
См. также setItemDelegate().
QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const
Возвращает делегат элемента, используемый этим представлением и моделью для заданного column. Можно вызвать itemDelegate(), чтобы получить указатель на текущий делегат для данного индекса.
См. также setItemDelegateForColumn(), itemDelegateForRow() и itemDelegate().
[virtual, since 6.0] QAbstractItemDelegate *QAbstractItemView::itemDelegateForIndex(const QModelIndex &index) const
Возвращает делегат элемента, используемый этим представлением и моделью для данного index.
Этот метод был добавлен в Qt 6.0.
См. также setItemDelegate(), setItemDelegateForRow() и setItemDelegateForColumn().
QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const
Возвращает делегат элемента, используемый этим представлением и моделью для заданной row, или nullptr , если делегат не был назначен. Можно вызвать itemDelegate(), чтобы получить указатель на текущий делегат для данного индекса.
См. также setItemDelegateForRow(), itemDelegateForColumn() и setItemDelegate().
[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)
Переопределяет: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).
Этот метод вызывается с заданным event при отправке события клавиши виджету. Базовая реализация обрабатывает основные перемещения курсора, например, Вверх, Вниз, Влево, Вправо, Домой, Страница Вверх и Страница Вниз; сигнал activated() испускается, если текущий индекс действителен, и нажата клавиша активации (например, Ввод или Возврат, в зависимости от платформы). В этом методе инициируется редактирование нажатием клавиши, например, если нажата клавиша F2.
См. также edit(), moveCursor(), keyboardSearch() и tabKeyNavigation.
[virtual] void QAbstractItemView::keyboardSearch(const QString &search)
Перемещает и выделяет элемент, наилучшим образом соответствующий строке search. Если элемент не найден, ничего не происходит.
В базовой реализации поиск сбрасывается, если search пустая или интервал времени с момента последнего поиска превысил QApplication::keyboardInputInterval().
QAbstractItemModel *QAbstractItemView::model() const
Возвращает модель, которую представляет это представление.
См. также setModel().
[override virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).
Этот метод вызывается с заданным event при двойном щелчке левой кнопкой мыши внутри виджета. Если двойной щелчок находится на допустимом элементе, он испускает сигнал doubleClicked() и вызывает edit() для элемента.
[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием event, когда на виджет отправляется событие перемещения мыши. Если выполняется выделение и новые элементы перемещаются поверх выделения, то выделение расширяется; если выполняется перетаскивание, оно продолжается.
[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием event, когда кнопка мыши нажата, а курсор находится внутри виджета. Если нажата допустимая запись, она становится текущей. Этот метод испускает сигнал pressed().
[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием event, когда кнопка мыши отпущена после нажатия на виджете. Если пользователь нажимает мышь внутри вашего виджета, затем перетаскивает мышь в другое место, прежде чем отпустить кнопку мыши, ваш виджет получает событие отпускания. Метод испускает сигнал clicked() если элемент был нажат.
[pure virtual protected] QModelIndex QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
Возвращает объект QModelIndex, указывающий на следующий объект в представлении, на основе заданного cursorAction и модификаторов клавиатуры, указанных в modifiers.
В базовом классе это чисто виртуальный метод.
void QAbstractItemView::openPersistentEditor(const QModelIndex &index)
Открывает постоянный редактор для элемента по заданному index. Если редактор не существует, делегат создаст новый редактор.
См. также closePersistentEditor() и isPersistentEditorOpen().
[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)
Переопределяет: QAbstractScrollArea::resizeEvent(QResizeEvent *event).
Этот метод вызывается с заданным событием event, когда виджету отправляется событие изменения размера.
См. также QWidget::resizeEvent().
QModelIndex QAbstractItemView::rootIndex() const
Возвращает индекс модели корневого элемента модели. Корневой элемент — это родительский элемент для элементов верхнего уровня представления. Корень может быть недействительным.
См. также setRootIndex().
[protected] void QAbstractItemView::scheduleDelayedItemsLayout()
Планирует расположение элементов в представлении, которое будет выполнено при запуске обработки событий.
Даже если scheduleDelayedItemsLayout() вызывается несколько раз до обработки событий, представление выполнит расположение только один раз.
См. также executeDelayedItemsLayout().
[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)
Подготавливает представление к прокрутке на (dx,dy) пикселей, перемещая области ошибок в противоположном направлении. Вы должны вызывать этот метод только в случае реализации прокручиваемого области в подклассе представления.
Если вы реализуете scrollContentsBy() в подклассе QAbstractItemView, вызовите этот метод перед вызовом QWidget::scroll() на области прокрутки. В качестве альтернативы, просто вызовите update().
См. также scrollContentsBy(), dirtyRegionOffset() и setDirtyRegion().
[pure virtual] void QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)
Прокручивает представление при необходимости, чтобы обеспечить видимость элемента по index. Представление попытается расположить элемент в соответствии с заданным hint.
В базовом классе это чисто виртуальный метод.
[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const
Этот вспомогательный метод возвращает список всех выделенных и не скрытых индексов элементов в представлении. Список не содержит дубликатов и не отсортирован.
См. также QItemSelectionModel::selectedIndexes().
[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
Возвращает SelectionFlags, которые следует использовать при обновлении выделения для включения заданного index. event — событие пользовательского ввода, например, событие мыши или клавиатуры.
Переопределите этот метод, чтобы определить своё поведение выделения.
См. также setSelection().
QItemSelectionModel *QAbstractItemView::selectionModel() const
Возвращает текущую модель выделения.
См. также setSelectionModel() и selectedIndexes().
[protected] void QAbstractItemView::setDirtyRegion(const QRegion ®ion)
Помечает заданную region как повреждённую и планирует её обновление. Вызывайте этот метод только в случае реализации собственного подкласса представления.
См. также scrollDirtyRegion() и dirtyRegionOffset().
void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)
Устанавливает заданный widget на элементе по заданному index, передавая виджет в собственность области просмотра.
Если index недействителен (например, если вы передаёте индекс корня), этот метод ничего не сделает.
Свойство autoFillBackground заданного widget должно быть установлено в значение true, иначе фон виджета будет прозрачным, отображая данные модели и элемент по заданному index.
Если виджет A заменяется на виджет B, виджет A будет удалён. Например, в приведённом ниже фрагменте кода объект QLineEdit будет удалён.
setIndexWidget(index, new QLineEdit); ... setIndexWidget(index, new QTextEdit);
Этот метод следует использовать только для отображения статического содержимого в видимой области, соответствующей элементу данных. Если вы хотите отобразить пользовательское динамическое содержимое или реализовать пользовательский виджет редактора, подклассифицируйте QStyledItemDelegate вместо этого.
См. также indexWidget() и Классы Делегатов.
void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)
Устанавливает делегата элементов для этого представления и его модели в delegate. Это полезно, если вы хотите получить полный контроль над редактированием и отображением элементов.
Любой существующий делегат будет удалён, но не удалён. QAbstractItemView не принимает владения над delegate.
Предупреждение: Не следует использовать один экземпляр делегата для нескольких представлений. Это может привести к неправильному или неинтуитивному поведению редактирования, так как каждое представление, подключенное к данному делегату, может получить сигнал closeEditor() и попытаться получить доступ, изменить или закрыть редактор, который уже был закрыт.
См. также itemDelegate().
void QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
Устанавливает заданного делегата элементов, используемого этим представлением и моделью для заданного column. Все элементы в column будут отрисовываться и управляться delegate вместо использования стандартного делегата (т.е., itemDelegate()).
Любой существующий делегат столбца для column будет удалён, но не удалён. QAbstractItemView не принимает владения над delegate.
Примечание: Если делегат назначен как для строки, так и для столбца, делегат строки будет иметь приоритет и управлять пересекающимся индексом ячейки.
Предупреждение: Не следует использовать один и тот же экземпляр делегата для нескольких представлений. Это может привести к некорректной или неинтуитивной работе с редактированием, так как каждое представление, связанное с данным делегатом, может получить сигнал closeEditor() и попытаться получить доступ, изменить или закрыть редактор, который уже был закрыт.
См. также itemDelegateForColumn(), setItemDelegateForRow() и itemDelegate().
void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
Устанавливает данный делегат элементов, используемый этим представлением и моделью для указанной строки. Все элементы в строке будут отрисованы и управляться делегатом вместо использования по умолчанию (т.е., itemDelegate()).
Любой существующий делегат строки для строки будет удален, но не удален. QAbstractItemView не принимает на себя владение делегатом.
Примечание: Если делегат назначен как для строки, так и для столбца, делегат строки (т.е., этот делегат) будет иметь приоритет и управлять пересекающимся индексом ячейки.
Предупреждение: Не следует использовать один и тот же экземпляр делегата для нескольких представлений. Это может привести к некорректной или неинтуитивной работе с редактированием, так как каждое представление, связанное с данным делегатом, может получить сигнал closeEditor() и попытаться получить доступ, изменить или закрыть редактор, который уже был закрыт.
См. также itemDelegateForRow(), setItemDelegateForColumn() и itemDelegate().
[virtual] void QAbstractItemView::setModel(QAbstractItemModel *model)
Устанавливает модель для представления.
Эта функция создаст и установит новую модель выделения, заменив любую ранее установленную с помощью setSelectionModel(). Однако старая модель выделения не будет удалена, так как она может быть общая для нескольких представлений. Рекомендуется удалить старую модель выделения, если она больше не требуется. Это делается с помощью следующего кода:
QItemSelectionModel *m = view->selectionModel(); view->setModel(new model); delete m;
Если у старой модели и старой модели выделения нет родителей или если их родители являются долгоживущими объектами, предпочтительнее вызвать их функции deleteLater(), чтобы явно их удалить.
Представление не принимает на себя владение моделью, если только оно не является родительским объектом модели, так как модель может быть общей для многих различных представлений.
См. также model(), selectionModel() и setSelectionModel().
[pure virtual protected] void QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)
Применяет флаги выделения flags к элементам внутри или задевающим прямоугольник rect.
При реализации собственного представления элементов setSelection должен вызывать selectionModel()->select(selection, flags), где selection — это либо пустой QModelIndex, либо QItemSelection, содержащий все элементы, находящиеся внутри rect.
См. также selectionCommand() и selectedIndexes().
[virtual] void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)
Устанавливает текущую модель выделения на заданную selectionModel.
Обратите внимание, что если после этой функции вызвать setModel(), заданный selectionModel будет заменён созданным представлением.
Примечание: Приложение должно удалить старую модель выделения, если она больше не требуется; т. е. если она не используется другими представлениями. Это произойдёт автоматически при удалении родительского объекта. Однако, если у него нет родителя или родитель является долгоживущим объектом, предпочтительнее вызвать его функцию deleteLater() для явного удаления.
См. также selectionModel(), setModel() и clearSelection().
[protected] void QAbstractItemView::setState(QAbstractItemView::State state)
Устанавливает состояние представления элементов на заданное state.
См. также state().
[virtual] int QAbstractItemView::sizeHintForColumn(int column) const
Возвращает размер подсказки ширины для указанного столбца или -1, если нет модели.
Эта функция используется в представлениях с горизонтальной заголовком для поиска подсказки размера для раздела заголовка, основываясь на содержимом заданного столбца.
См. также sizeHintForRow().
QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const
Возвращает размер подсказки для элемента с заданным индексом или недопустимый размер для недопустимых индексов.
См. также sizeHintForRow() и sizeHintForColumn().
[virtual] int QAbstractItemView::sizeHintForRow(int row) const
Возвращает размер подсказки высоты для указанной строки или -1, если нет модели.
Возвращаемая высота вычисляется с использованием размеров подсказок элементов заданной строки, т.е. возвращаемое значение — максимальная высота среди элементов. Обратите внимание, что для управления высотой строки необходимо переопределить функцию QAbstractItemDelegate::sizeHint().
Эта функция используется в представлениях с вертикальным заголовком для поиска подсказки размера для раздела заголовка, основываясь на содержимом заданной строки.
См. также sizeHintForColumn().
[virtual protected] void QAbstractItemView::startDrag(Qt::DropActions supportedActions)
Запускает перетаскивание, вызывая drag->exec() с заданными supportedActions.
[protected] QAbstractItemView::State QAbstractItemView::state() const
Возвращает состояние представления элементов.
См. также setState().
[override virtual protected] void QAbstractItemView::timerEvent(QTimerEvent *event)
Переопределяет: QObject::timerEvent(QTimerEvent *event).
Эта функция вызывается с заданным event, когда в виджет отправляется событие таймера.
См. также QObject::timerEvent().
[pure virtual protected] int QAbstractItemView::verticalOffset() const
Возвращает вертикальное смещение представления.
В базовом классе это чистая виртуальная функция.
См. также horizontalOffset().
[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)
Переопределяет: QAbstractScrollArea::viewportEvent(QEvent *event).
Эта функция используется для обработки всплывающих подсказок и режима «Что это?», если заданное event является QEvent::ToolTip или QEvent::WhatsThis. Она передает все остальные события своему базовому обработчику viewportEvent().
Возвращает true если event был распознан и обработан; в противном случае возвращает false.
[override virtual protected, since 5.2] QSize QAbstractItemView::viewportSizeHint() const
Переопределяет: QAbstractScrollArea::viewportSizeHint() const.
Эта функция была введена в Qt 5.2.
[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const
Возвращает прямоугольник на области просмотра, занимаемый элементом в index.
Если ваш элемент отображается в нескольких областях, то visualRect должен возвращать основную область, которая содержит индекс, а не всю область, которую индекс может охватывать, касаться или вызывать отрисовку.
В базовом классе это чистая виртуальная функция.
См. также indexAt() и visualRegionForSelection().
[pure virtual protected] QRegion QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const
Возвращает область из области просмотра элементов в заданном selection.
В базовом классе это чистая виртуальная функция.
См. также visualRect() и selectedIndexes().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qabstractitemview.html