Класс 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
- 34 публичных функций унаследовано от QObject
- 14 публичных функций унаследовано от QPaintDevice
Публичные слоты
| void | clearSelection() |
| void | edit(const QModelIndex &index) |
| виртуальный void | reset() |
| void | scrollToBottom() |
| void | scrollToTop() |
| виртуальный void | selectAll() |
| void | setCurrentIndex(const QModelIndex &index) |
| виртуальный void | setRootIndex(const QModelIndex &index) |
| void | update(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, ..., 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 | horizontalOffset() const = 0 |
| виртуальный 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 |
| виртуальный 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
Дополнительные унаследованные члены
- 1 публичная переменная, унаследованная от QObject
- 5 статические публичные члены, унаследованные от QWidget
- 10 статических публичных членов, унаследованные от QObject
- 2 защищённые переменные, унаследованные от QObject
- 1 защищённый тип, унаследованный от QPaintDevice
Подробное описание
Класс QAbstractItemView предоставляет базовые возможности для классов представлений элементов.
QAbstractItemView — базовый класс для всех стандартных представлений, использующих QAbstractItemModel. QAbstractItemView — абстрактный класс и сам не может быть инстанцирован. Он предоставляет стандартный интерфейс для взаимодействия с моделями через механизм сигналов и слотов, позволяя подклассам оставаться в актуальном состоянии при изменении моделей. Этот класс предоставляет стандартную поддержку навигации с помощью клавиатуры и мыши, прокрутки области просмотра, редактирования элементов и выбора. Навигация с помощью клавиатуры реализует эту функциональность:
| Клавиши | Функциональность |
|---|---|
| Клавиши со стрелками | Изменяет текущий элемент и выбирает его. |
| Ctrl+Клавиши со стрелками | Изменяет текущий элемент, но не выбирает его. |
| Shift+Клавиши со стрелками | Изменяет текущий элемент и выбирает его. Ранее выбранные элементы не будут сняты с выбора. |
| Ctr+Пробел | Переключает выбор текущего элемента. |
| 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 и Пример диаграммы.
Документация по типам членов
перечисление 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().
перечисление QAbstractItemView::DragDropMode
Описывает различные события перетаскивания и отпускания, на которые может реагировать представление. По умолчанию представление не поддерживает перетаскивание или отпускание (NoDragDrop).
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::NoDragDrop |
0 |
Не поддерживает перетаскивание или отпускание. |
QAbstractItemView::DragOnly |
1 |
Представление поддерживает перетаскивание собственных элементов. |
QAbstractItemView::DropOnly |
2 |
Представление принимает отпускания. |
QAbstractItemView::DragDrop |
3 |
Представление поддерживает как перетаскивание, так и отпускание. |
QAbstractItemView::InternalMove |
4 |
Представление принимает только операции перемещения (не копирования) только из себя. |
Обратите внимание, что используемая модель должна обеспечивать поддержку операций перетаскивания и отпускания.
Это перечисление было введено или изменено в Qt 4.2.
См. также setDragDropMode() и Использование перетаскивания и отпускания с представлениями элементов.
перечисление QAbstractItemView::DropIndicatorPosition
Это перечисление указывает положение индикатора отпускания относительно индекса в текущем положении мыши:
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::OnItem |
0 |
Элемент будет отпущен на индекс. |
QAbstractItemView::AboveItem |
1 |
Элемент будет отпущен над индексом. |
QAbstractItemView::BelowItem |
2 |
Элемент будет отпущен под индексом. |
QAbstractItemView::OnViewport |
3 |
Элемент будет отпущен на область области просмотра без элементов. Способ, которым каждое представление обрабатывает элементы, отпущенные в область просмотра, зависит от поведения используемой базовой модели. |
перечисление QAbstractItemView::EditTriggerфлаги 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.
перечисление QAbstractItemView::ScrollHint
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::EnsureVisible |
0 |
Прокрутка для обеспечения видимости элемента. |
QAbstractItemView::PositionAtTop |
1 |
Прокрутка для размещения элемента в верхней части области просмотра. |
QAbstractItemView::PositionAtBottom |
2 |
Прокрутка для размещения элемента в нижней части области просмотра. |
QAbstractItemView::PositionAtCenter |
3 |
Прокрутка для размещения элемента в центре области просмотра. |
перечисление QAbstractItemView::ScrollMode
Описывает, как должна вести себя полоса прокрутки. При установке режима прокрутки ScrollPerPixel размер одного шага будет настраиваться автоматически, если его не было установлено явно с помощью setSingleStep(). Автоматическую настройку можно восстановить, установив размер шага в -1.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::ScrollPerItem |
0 |
Представление будет прокручивать содержимое на один элемент за раз. |
QAbstractItemView::ScrollPerPixel |
1 |
Представление будет прокручивать содержимое на один пиксель за раз. |
Это перечисление было введено или изменено в Qt 4.2.
перечисление QAbstractItemView::SelectionBehavior
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::SelectItems |
0 |
Выбор отдельных элементов. |
QAbstractItemView::SelectRows |
1 |
Выбор только строк. |
QAbstractItemView::SelectColumns |
2 |
Выбор только столбцов. |
перечисление 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.
Примечание: Это не предназначено для предотвращения перезаписи элементов. Реализация метода 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, объединенных с помощью оператора OR. Представление инициирует редактирование элемента только если выполненное действие указано в этом свойстве.
Функции доступа:
| 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() излучается, если текущий индекс действителен, и нажата клавиша активации (например, Ввод или Возврат, в зависимости от платформы). В этой функции инициируется редактирование нажатием клавиши, например, если нажата клавиша 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) пикселей, перемещая грязные области в противоположном направлении. Вам нужно вызывать эту функцию только в том случае, если вы реализуете прокручиваемый viewport в вашем подклассе представления.
Если вы реализуете scrollContentsBy() в подклассе QAbstractItemView, вызовите эту функцию перед вызовом QWidget::scroll() на viewport. В качестве альтернативы, просто вызовите 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, передавая владение виджетом в viewport.
Если index недействителен (например, если вы передаёте корневой индекс), эта функция ничего не сделает.
Свойство autoFillBackground данного widget должно быть установлено в значение true, в противном случае фон виджета будет прозрачным, показывая как данные модели, так и элемент по заданному 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)
Устанавливает model для представления.
Эта функция создаст и установит новую модель выбора, заменив любую ранее установленную модель с помощью setSelectionModel(). Однако старая модель выбора не будет удалена, так как она может быть совмещена между несколькими представлениями. Рекомендуется удалить старую модель выбора, если она больше не требуется. Это делается следующим кодом:
QItemSelectionModel *m = view->selectionModel(); view->setModel(new model); delete m;
Если у старой модели и старой модели выбора нет родителей или если их родители являются долгоживущими объектами, предпочтительнее вызвать их функции deleteLater() для явного удаления.
Представление не берет на себя владение моделью, если только оно не является родительским объектом модели, поскольку модель может быть совмещена между многими различными представлениями.
См. также model(), selectionModel(), и setSelectionModel().
[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)
Устанавливает корневой элемент в элемент по заданному 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)
Обновляет область, занимаемую указанным 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
Возвращает прямоугольник в области просмотра, занимаемый элементом по 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/archives/qt-5.11/qabstractitemview.html