Класс QAbstractItemView
Класс QAbstractItemView предоставляет базовые функции для классов отображения элементов. Подробнее...
| Заголовок: | #include <QAbstractItemView> |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractScrollArea |
| Наследующие классы: |
Общедоступные типы
| Перечисление | DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove } |
| Перечисление | EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, ..., AllEditTriggers } |
| Флаги | EditTriggers |
| Перечисление | ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter } |
| Перечисление | ScrollMode { ScrollPerItem, ScrollPerPixel } |
| Перечисление | SelectionBehavior { SelectItems, SelectRows, SelectColumns } |
| Перечисление | SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection } |
Свойства
|
|
- 3 свойства унаследованы от QAbstractScrollArea
- 6 свойств унаследованы от QFrame
- 59 свойств унаследованы от QWidget
- 1 свойство унаследовано от QObject
Общедоступные функции
| 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 * | itemDelegate(const QModelIndex &index) const |
| QAbstractItemDelegate * | itemDelegateForColumn(int column) 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 |
- 20 публичных функций унаследовано от QAbstractScrollArea
- 14 публичных функций унаследовано от QFrame
- 214 публичных функций унаследовано от QWidget
- 31 публичной функции унаследовано от QObject
- 14 публичных функций унаследовано от QPaintDevice
Публичные слоты
| 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() |
Статические публичные члены
| const QMetaObject | staticMetaObject |
- 5 статических публичных членов унаследовано от QWidget
- 9 статических публичных членов унаследовано от QObject
Защищенные типы
| перечисление | CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, ..., MovePrevious } |
| перечисление | DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport } |
| перечисление | State { NoState, DraggingState, DragSelectingState, EditingState, ..., AnimatingState } |
Защищенные функции
| QPoint | dirtyRegionOffset() const |
| QAbstractItemView::DropIndicatorPosition | dropIndicatorPosition() const |
| виртуальный bool | edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event) |
| void | executeDelayedItemsLayout() |
| виртуальный int | горизонтальныйОфсет() const = 0 |
| виртуальный bool | isIndexHidden(const QModelIndex &index) const = 0 |
| виртуальный QModelIndex | переместитьКурсор(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 | вертикальныйОфсет() const = 0 |
| виртуальный QStyleOptionViewItem | viewOptions() const |
| виртуальный 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 |
- 20 защищенных функций, унаследованных от QAbstractScrollArea
- 4 защищенных функций, унаследованных от QFrame
- 35 защищенных функций, унаследованных от QWidget
- 9 защищенных функций, унаследованных от QObject
- 1 защищенная функция, унаследованная от QPaintDevice
Защищенные слоты
| виртуальный 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 QVector<int> &roles = QVector<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() |
- 1 защищенный слот, унаследованный от QWidget
Подробное описание
Класс QAbstractItemView предоставляет базовые возможности для классов виджетов отображения элементов.
QAbstractItemView — базовый класс для всех стандартных представлений, использующих QAbstractItemModel. QAbstractItemView — абстрактный класс и сам по себе не может быть создан. Он предоставляет стандартный интерфейс для взаимодействия с моделями через механизм сигналов и слотов, позволяя подклассам оставаться в актуальном состоянии при изменениях в моделях. Этот класс предоставляет стандартную поддержку навигации с помощью клавиатуры и мыши, прокрутки области просмотра, редактирования элементов и выбора элементов. Навигация с помощью клавиатуры реализует эту функциональность:
| Клавиши | Функциональность |
|---|---|
| Клавиши со стрелками | Изменяет текущий элемент и выбирает его. |
| Ctrl+Клавиши со стрелками | Изменяет текущий элемент, но не выбирает его. |
| Shift+Клавиши со стрелками | Изменяет текущий элемент и выбирает его. Ранее выбранный(ые) элемент(ы) не снимается с выбора. |
| Ctrl+Пробел | Переключает выбор текущего элемента. |
| Tab/Backtab | Изменяет текущий элемент на следующий/предыдущий элемент. |
| Home/End | Выбирает первый/последний элемент в модели. |
| Page up/Page down | Прокручивает отображаемые строки вверх/вниз на количество видимых строк в представлении. |
| Ctrl+A | Выбирает все элементы в модели. |
Обратите внимание, что в приведенной выше таблице предполагается, что режим выбора режима выбора допускает эти операции. Например, вы не можете выбирать элементы, если режим выбора — 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 |
Представление принимает только операции перемещения (не копирования) только из себя. |
Обратите внимание, что используемая модель должна предоставлять поддержку операций перетаскивания и выгрузки.
Это перечисление было введено или изменено в Qt 4.2.
См. также 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 |
Представление будет прокручивать содержимое на один пиксель за раз. |
Это перечисление было введено или изменено в Qt 4.2.
enum QAbstractItemView::SelectionBehavior
| Константа | Значение | Описание |
|---|---|---|
QAbstractItemView::SelectItems |
0 |
Выбор отдельных элементов. |
QAbstractItemView::SelectRows |
1 |
Выбор только строк. |
QAbstractItemView::SelectColumns |
2 |
Выбор только столбцов. |
enum QAbstractItemView::SelectionMode
Это перечисление указывает, как представление реагирует на пользовательские выделения:
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::SingleSelection |
1 |
При выборе пользователем элемента, все ранее выбранные элементы становятся невыбранными. Пользователь может отменить выбор выбранного элемента. |
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 пикселей.
Это свойство было добавлено в Qt 4.4.
Функции доступа:
| int | autoScrollMargin() const |
| void | setAutoScrollMargin(int margin) |
defaultDropAction : Qt::DropAction
Это свойство содержит действие перетаскивания, которое будет использоваться по умолчанию в QAbstractItemView::drag().
Если свойство не установлено, действием перетаскивания является CopyAction, если поддерживаемые действия поддерживают CopyAction.
Это свойство было добавлено в Qt 4.6.
Функции доступа:
| Qt::DropAction | defaultDropAction() const |
| void | setDefaultDropAction(Qt::DropAction dropAction) |
См. также showDropIndicator и dragDropOverwriteMode.
dragDropMode : DragDropMode
Это свойство содержит событие перетаскивания, на которое будет реагировать представление.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QAbstractItemView::DragDropMode | dragDropMode() const |
| void | setDragDropMode(QAbstractItemView::DragDropMode behavior) |
См. также showDropIndicator и dragDropOverwriteMode.
dragDropOverwriteMode : bool
Это свойство определяет поведение перетаскивания в представлении.
Если его значение равно true, выбранные данные перезапишут существующие данные элемента при перетаскивании, а перемещение данных очистит элемент. Если его значение равно false, выбранные данные будут вставлены как новый элемент при перетаскивании данных. При перемещении данных элемент также будет удален.
Значение по умолчанию — false, как в подклассах QListView и QTreeView. В подклассе QTableView, с другой стороны, свойство установлено в true.
Примечание: это не предназначено для предотвращения перезаписи элементов. Реализация model's implementation of flags() должна делать это, не возвращая Qt::ItemIsDropEnabled.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| bool | dragDropOverwriteMode() const |
| void | setDragDropOverwriteMode(bool overwrite) |
См. также dragDropMode.
dragEnabled : bool
Это свойство определяет, поддерживает ли представление перетаскивание собственных элементов.
Функции доступа:
| bool | dragEnabled() const |
| void | setDragEnabled(bool enable) |
См. также showDropIndicator, DragDropMode, dragDropOverwriteMode, и acceptDrops.
editTriggers : EditTriggers
Это свойство определяет, какие действия будут инициировать редактирование элемента.
Это свойство представляет собой набор флагов, определенных EditTrigger, объединенных с помощью оператора ИЛИ. Представление инициирует редактирование элемента только в том случае, если выполненное действие установлено в этом свойстве.
Функции доступа:
| QAbstractItemView::EditTriggers | editTriggers() const |
| void | setEditTriggers(QAbstractItemView::EditTriggers triggers) |
horizontalScrollMode : ScrollMode
как представление прокручивает свое содержимое в горизонтальном направлении
Это свойство управляет тем, как представление прокручивает свое содержимое по горизонтали. Прокрутка может выполняться либо по пикселям, либо по элементам. Его значение по умолчанию поступает из стиля через подсказку стиля QStyle::SH_ItemView_ScrollMode.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| 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.
Это свойство было введено в Qt 4.2.
Функции доступа:
| QAbstractItemView::ScrollMode | verticalScrollMode() const |
| void | setVerticalScrollMode(QAbstractItemView::ScrollMode mode) |
| void | resetVerticalScrollMode() |
Документация по членам-функциям
QAbstractItemView::QAbstractItemView(QWidget *parent = nullptr)
Создаёт представление абстрактных элементов с заданным parent.
[virtual] QAbstractItemView::~QAbstractItemView()
Удаляет представление.
[signal] void QAbstractItemView::activated(const QModelIndex &index)
Этот сигнал излучается, когда пользователь активирует элемент, указанный индексом index. Способ активации элементов зависит от платформы; например, одиночным или двойным щелчком, или нажатием клавиш Return или Enter, когда элемент является текущим.
См. также 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().
void QAbstractItemView::closePersistentEditor(const QModelIndex &index)
Закрывает постоянный редактор для элемента по заданному index.
См. также openPersistentEditor() и isPersistentEditorOpen().
[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().
QModelIndex QAbstractItemView::currentIndex() const
Возвращает индекс модели текущего элемента.
См. также setCurrentIndex().
[virtual protected slot] void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>())
Этот слот вызывается, когда элементы с заданными roles изменяются в модели. Изменённые элементы находятся от topLeft до bottomRight включительно. Если изменяется только один элемент, topLeft == bottomRight.
roles, которые были изменены, могут быть либо пустым контейнером (что означает, что всё было изменено), либо непустым контейнером с подмножеством изменённых ролей.
[protected] QPoint QAbstractItemView::dirtyRegionOffset() const
Возвращает смещение грязных областей в представлении.
Если вы используете scrollDirtyRegion() и реализуете paintEvent() в подклассе QAbstractItemView, вы должны переводить область, заданную событием рисования, со смещением, возвращаемым этой функцией.
См. также scrollDirtyRegion() и setDirtyRegion().
[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)
Этот сигнал излучается, когда двойной щелчок нажатия на кнопку мыши. Элемент, на который был произведён двойной клик, задаётся индексом index. Сигнал излучается только при валидном индексе.
См. также clicked() и activated().
[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)
Переопределено из QAbstractScrollArea::dragEnterEvent().
Эта функция вызывается с заданным event, когда операция перетаскивания и опускания входит в виджет. Если перетаскивание находится над допустимым местом опускания (например, над элементом, принимающим опускания), событие принимается; в противном случае оно игнорируется.
См. также dropEvent() и startDrag().
[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)
Переопределено из QAbstractScrollArea::dragLeaveEvent().
Эта функция вызывается, когда элемент, который перетаскивается, покидает виджет. event описывает состояние операции перетаскивания и опускания.
[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)
Переопределено из QAbstractScrollArea::dragMoveEvent().
Эта функция вызывается непрерывно с заданным event во время операции перетаскивания и опускания над виджетом. Она может вызвать прокрутку виджета, если, например, пользователь перетаскивает выделение к правому или нижнему краю виджета. В этом случае событие будет принято; в противном случае оно будет проигнорировано.
См. также dropEvent() и startDrag().
[override virtual protected] void QAbstractItemView::dropEvent(QDropEvent *event)
Переопределено из QAbstractScrollArea::dropEvent().
Эта функция вызывается со значением event, когда происходит событие опускания над виджетом. Если модель принимает позицию события опускания, событие обрабатывается; в противном случае оно игнорируется.
См. также startDrag().
[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const
Возвращает положение индикатора опускания относительно ближайшего элемента.
Эта функция была добавлена в Qt 4.1.
[slot] void QAbstractItemView::edit(const QModelIndex &index)
Начинает редактирование элемента, соответствующего заданному index, если он редактируемый.
Обратите внимание, что эта функция не изменяет текущий индекс. Поскольку текущий индекс определяет следующие и предыдущие элементы для редактирования, пользователи могут обнаружить, что навигация с клавиатуры не работает так, как ожидается. Для обеспечения согласованного поведения навигации вызовите setCurrentIndex() перед этой функцией с тем же индексом модели.
См. также QModelIndex::flags().
[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
Начинает редактирование элемента по index, создавая редактор при необходимости, и возвращает true если состояние виджета State теперь EditingState; в противном случае возвращает false.
Действие, вызвавшее процесс редактирования, описывается trigger, а связанное событие задано event.
Редактирование можно принудительно выполнить, указав trigger как QAbstractItemView::AllEditTriggers.
См. также closeEditor().
[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)
Эта функция вызывается, когда заданный editor был уничтожен.
См. также closeEditor().
[signal] void QAbstractItemView::entered(const QModelIndex &index)
Этот сигнал излучается, когда курсор мыши входит в элемент, указанный index. Для работы этой функции необходимо включить отслеживание мыши.
См. также viewportEntered(), activated(), clicked(), doubleClicked() и pressed().
[override virtual protected] bool QAbstractItemView::event(QEvent *event)
Переопределено из QAbstractScrollArea::event().
[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)
[protected] void QAbstractItemView::executeDelayedItemsLayout()
Выполняет запланированные макеты без ожидания начала обработки событий.
См. также scheduleDelayedItemsLayout().
[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)
Переопределено из QWidget::focusInEvent().
Эта функция вызывается со значением event, когда виджет получает фокус. По умолчанию событие игнорируется.
См. также setFocus() и focusOutEvent().
[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)
Переопределено из QWidget::focusNextPrevChild().
[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)
Переопределено из QWidget::focusOutEvent().
Эта функция вызывается со значением 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.
Эта функция была добавлена в Qt 4.1.
См. также setIndexWidget().
[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)
Переопределено из QWidget::inputMethodEvent().
[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const
Переопределено из QWidget::inputMethodQuery().
[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const
Возвращает true если элемент, на который ссылается заданный index, скрыт в виджете, в противном случае возвращает false.
Скрытие — это функция, специфичная для виджета. Например, в TableView столбец может быть помечен как скрытый, а строка — в TreeView.
В базовом классе это чисто виртуальная функция.
bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const
Возвращает, открыт ли постоянный редактор для элемента по индексу index.
Эта функция была добавлена в Qt 5.10.
См. также openPersistentEditor() и closePersistentEditor().
QAbstractItemDelegate *QAbstractItemView::itemDelegate() const
Возвращает делегат элемента, используемый этим виджетом и моделью. Это либо делегат, установленный с помощью setItemDelegate(), либо по умолчанию.
См. также setItemDelegate().
QAbstractItemDelegate *QAbstractItemView::itemDelegate(const QModelIndex &index) const
Возвращает делегат элемента, используемый этим виджетом и моделью для данного index.
QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const
Возвращает делегат элементов, используемый этим представлением и моделью для указанного столбца column. Вы можете вызвать itemDelegate(), чтобы получить указатель на текущий делегат для заданного индекса.
Эта функция была добавлена в Qt 4.2.
См. также setItemDelegateForColumn(), itemDelegateForRow() и itemDelegate().
QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const
Возвращает делегат элементов, используемый этим представлением и моделью для указанной строки row, или 0, если делегат не назначен. Вы можете вызвать itemDelegate(), чтобы получить указатель на текущий делегат для заданного индекса.
Эта функция была добавлена в Qt 4.2.
См. также setItemDelegateForRow(), itemDelegateForColumn() и setItemDelegate().
[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)
Переопределено из QAbstractScrollArea::keyPressEvent().
Эта функция вызывается с заданным событием event при отправке события нажатия клавиши на виджет. Базовая реализация обрабатывает основные перемещения курсора, например, Вверх, Вниз, Влево, Вправо, Домой, Пред. страница, и След. страница; сигнал activated() генерируется, если текущий индекс действителен и нажата клавиша активации (например, Enter или Возврат, в зависимости от платформы). В этой функции происходит инициирование редактирования при нажатии клавиши, например, если нажата 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().
Эта функция вызывается с заданным событием event при двойном щелчке кнопкой мыши внутри виджета. Если двойной щелчок происходит по валидному элементу, генерируется сигнал doubleClicked() и вызывается edit() для элемента.
[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)
Переопределено из QAbstractScrollArea::mouseMoveEvent().
Эта функция вызывается с заданным событием event при отправке события перемещения мыши на виджет. Если происходит выбор, и новые элементы перемещаются над выделением, то выделение расширяется; если происходит перетаскивание, оно продолжается.
[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)
Переопределено из QAbstractScrollArea::mousePressEvent().
Эта функция вызывается с заданным событием event при нажатии кнопки мыши, когда курсор находится внутри виджета. Если нажат действительный элемент, он становится текущим элементом. Функция генерирует сигнал pressed().
[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)
Переопределено из QAbstractScrollArea::mouseReleaseEvent().
Эта функция вызывается с заданным событием 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().
[signal] void QAbstractItemView::pressed(const QModelIndex &index)
Этот сигнал генерируется при нажатии кнопки мыши. Элемент, на котором была нажата кнопка мыши, задан параметром index. Сигнал генерируется только при валидном индексе.
Используйте функцию QApplication::mouseButtons(), чтобы получить состояние кнопок мыши.
См. также activated(), clicked(), doubleClicked() и entered().
[virtual slot] void QAbstractItemView::reset()
Сбрасывает внутреннее состояние представления.
Предупреждение: Эта функция сбросит открытые редакторы, положения полос прокрутки, выделения и т. д. Действующие изменения не будут сохранены. Если вы хотите сохранить изменения при сбросе представления, вы можете переопределить эту функцию, сохранить ваши изменения и затем вызвать реализацию базового класса.
[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)
Переопределено из QAbstractScrollArea::resizeEvent().
Эта функция вызывается с заданным событием event при отправке события изменения размера на виджет.
См. также QWidget::resizeEvent().
QModelIndex QAbstractItemView::rootIndex() const
Возвращает индекс модели корневого элемента модели. Корневой элемент — это родительский элемент для элементов верхнего уровня представления. Корень может быть недействительным.
См. также setRootIndex().
[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().
[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.
В базовом классе это чистая виртуальная функция.
[slot] void QAbstractItemView::scrollToBottom()
Прокручивает представление до самого низа.
Эта функция была добавлена в Qt 4.1.
См. также scrollTo() и scrollToTop().
[slot] void QAbstractItemView::scrollToTop()
Прокручивает представление до самого верха.
Эта функция была добавлена в Qt 4.1.
См. также scrollTo() и scrollToBottom().
[virtual slot] void QAbstractItemView::selectAll()
Выделяет все элементы в представлении. Эта функция будет использовать поведение выделения, заданное в представлении.
См. также setSelection(), selectedIndexes() и clearSelection().
[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const
Эта вспомогательная функция возвращает список всех выделенных и не скрытых индексов элементов в представлении. Список не содержит дубликатов и не отсортирован.
См. также QItemSelectionModel::selectedIndexes().
[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Этот слот вызывается при изменении выделения. Предыдущее выделение (которое может быть пустым) задаётся параметром deselected, а новое выделение — параметром selected.
См. также setSelection().
[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
Возвращает SelectionFlags, которые следует использовать при обновлении выделения, чтобы включить указанный индекс index. event — это событие ввода пользователя, например, событие мыши или клавиатуры.
Переопределите эту функцию, чтобы определить собственное поведение выделения.
См. также setSelection().
QItemSelectionModel *QAbstractItemView::selectionModel() const
Возвращает текущую модель выделения.
См. также setSelectionModel() и selectedIndexes().
[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)
Устанавливает текущий элемент в элемент по индексу index.
Если режим текущего выделения не NoSelection, то элемент также выделяется. Обратите внимание, что эта функция также обновляет начальную позицию для любых новых выделений, которые пользователь выполняет.
Чтобы установить элемент как текущий без его выделения, вызовите
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
См. также currentIndex(), currentChanged() и selectionMode.
[protected] void QAbstractItemView::setDirtyRegion(const QRegion ®ion)
Помечает заданную область region как грязную и планирует её обновление. Вам нужно вызывать эту функцию только в том случае, если вы реализуете свой собственный подкласс представления.
Эта функция была добавлена в Qt 4.1.
См. также scrollDirtyRegion() и dirtyRegionOffset().
void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)
Устанавливает заданный widget для элемента по заданному индексу index, передавая владение widget в область просмотра.
Если index недействителен (например, если вы передаёте корневой индекс), эта функция ничего не сделает.
Свойство autoFillBackground заданного widget должно быть установлено в true, в противном случае фон widget будет прозрачным, показывая данные модели и элемент по заданному index.
Если виджет A заменяется на виджет B, виджет A будет удалён. Например, в приведённом ниже фрагменте кода объект QLineEdit будет удалён.
setIndexWidget(index, new QLineEdit); ... setIndexWidget(index, new QTextEdit);
Эта функция должна использоваться только для отображения статического содержимого в видимой области, соответствующей элементу данных. Если вы хотите отобразить пользовательское динамическое содержимое или реализовать пользовательский виджет редактора, используйте подкласс QItemDelegate вместо этого.
Эта функция была добавлена в Qt 4.1.
См. также 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() и попытаться получить доступ, изменить или закрыть редактор, который уже был закрыт.
Эта функция была добавлена в Qt 4.2.
См. также itemDelegateForColumn(), setItemDelegateForRow() и itemDelegate().
void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
Устанавливает указанный делегат элемента, используемый этим представлением и моделью для заданной строки row. Все элементы в строке row будут отрисованы и управляться delegate вместо использования стандартного делегата (т. е., itemDelegate()).
Любой существующий делегат строки для row будет удалён, но не удалён. QAbstractItemView не получает владения delegate.
Примечание: Если делегат назначен как для строки, так и для столбца, делегат строки (т. е., этот делегат) будет иметь приоритет и управлять пересекающимся индексом ячейки.
Предупреждение: Не следует использовать один и тот же экземпляр делегата для нескольких представлений. Это может привести к некорректному или неинтуитивному поведению редактирования, так как каждое представление, связанное с данным делегатом, может получить сигнал closeEditor() и попытаться получить доступ, изменить или закрыть редактор, который уже был закрыт.
Эта функция была добавлена в Qt 4.2.
См. также itemDelegateForRow(), setItemDelegateForColumn() и itemDelegate().
[virtual] void QAbstractItemView::setModel(QAbstractItemModel *model)
Устанавливает модель для представления вью.
Эта функция создаст и установит новую модель выбора, заменив любую ранее установленную модель с помощью setSelectionModel(). Однако старая модель выбора не будет удалена, так как она может быть разделена между несколькими представлениями. Рекомендуется удалить старую модель выбора, если она больше не требуется. Это делается с помощью следующего кода:
QItemSelectionModel *m = view->selectionModel(); view->setModel(new model); delete m;
Если у старой модели и старой модели выбора нет родительских объектов, или если их родительские объекты являются долгоживущими, предпочтительнее вызвать их функции deleteLater(), чтобы явно удалить их.
Представление не принимает владение моделью, если только оно не является родительским объектом модели, потому что модель может быть разделена между многими различными представлениями.
См. также model(), selectionModel() и setSelectionModel().
[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)
Устанавливает корневой элемент в элемент по заданному индексу.
См. также rootIndex().
[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
Возвращает ширину размера подсказки для указанного column или -1, если модели нет.
Эта функция используется в представлениях с горизонтальной заголовком для определения размера подсказки для раздела заголовка на основе содержимого заданного column.
См. также sizeHintForRow().
QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const
Возвращает размер подсказки для элемента с заданным index или недопустимый размер для недопустимых индексов.
См. также sizeHintForRow() и sizeHintForColumn().
[virtual] int QAbstractItemView::sizeHintForRow(int row) const
Возвращает высоту размера подсказки для указанного row или -1, если модели нет.
Возвращаемая высота рассчитывается с использованием размеров подсказок элементов заданного row, т. е. возвращаемое значение — это максимальная высота среди элементов. Обратите внимание, что для управления высотой строки необходимо переопределить функцию QAbstractItemDelegate::sizeHint().
Эта функция используется в представлениях с вертикальной заголовком для определения размера подсказки для раздела заголовка на основе содержимого заданного row.
См. также 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().
Эта функция вызывается с заданным event, когда в виджет отправляется событие таймера.
См. также QObject::timerEvent().
[slot] void QAbstractItemView::update(const QModelIndex &index)
Обновляет область, занимаемую заданным индексом.
Эта функция была введена в Qt 4.3.
[virtual protected slot] void QAbstractItemView::updateGeometries()
Обновляет геометрию дочерних виджетов представления.
Эта функция была введена в Qt 4.4.
[pure virtual protected] int QAbstractItemView::verticalOffset() const
Возвращает вертикальное смещение представления.
В базовом классе это чисто виртуальная функция.
См. также horizontalOffset().
[virtual protected] QStyleOptionViewItem QAbstractItemView::viewOptions() const
Возвращает структуру QStyleOptionViewItem, заполненную палитрой, шрифтом, состоянием, выравниваниями и т. д. представления.
[signal] void QAbstractItemView::viewportEntered()
Этот сигнал излучается при входе курсора мыши в область просмотра. Для работы этой функции необходимо включить отслеживание мыши.
См. также entered().
[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)
Переопределено из QAbstractScrollArea::viewportEvent().
Эта функция используется для обработки всплывающих подсказок и режима «Что это?», если заданное event — QEvent::ToolTip или QEvent::WhatsThis. Все остальные события передаются в обработчик viewportEvent() базового класса.
[override virtual protected] QSize QAbstractItemView::viewportSizeHint() const
Переопределено из QAbstractScrollArea::viewportSizeHint().
Эта функция была введена в Qt 5.2.
[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const
Возвращает прямоугольник в области просмотра, занимаемый элементом по индексу.
Если ваш элемент отображается в нескольких областях, visualRect должен возвращать основную область, содержащую index, а не полную область, которую index может охватывать, касаться или вызывать отрисовку.
В базовом классе это чисто виртуальная функция.
См. также 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-5.12/qabstractitemview.html