Класс 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 } |
Свойства
|
|
Публичные функции
| 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 |
Публичные слоты
| void | clearSelection() |
| void | edit(const QModelIndex &index) |
| виртуальный void | reset() |
| void | прокрутитьВниз() |
| void | прокрутитьВверх() |
| виртуальный void | выбратьВсе() |
| void | установитьТекущийИндекс(const QModelIndex &index) |
| виртуальный void | установитьКорневойИндекс(const QModelIndex &index) |
| void | обновить(const QModelIndex &index) |
Сигналы
| void | activated(const QModelIndex &index) |
| void | clicked(const QModelIndex &index) |
| void | doubleClicked(const QModelIndex &index) |
| void | entered(const QModelIndex &index) |
| void | iconSizeChanged(const QSize &size) |
| void | pressed(const QModelIndex &index) |
| void | viewportEntered() |
Защищенные типы
| перечисление | CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, ..., 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 |
Реализованные защищённые функции
| virtual void | dragEnterEvent(QDragEnterEvent *event) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *event) override |
| virtual void | dragMoveEvent(QDragMoveEvent *event) override |
| virtual void | dropEvent(QDropEvent *event) override |
| virtual bool | event(QEvent *event) override |
| virtual bool | eventFilter(QObject *object, QEvent *event) override |
| virtual void | focusInEvent(QFocusEvent *event) override |
| virtual bool | focusNextPrevChild(bool next) override |
| virtual void | focusOutEvent(QFocusEvent *event) override |
| virtual void | inputMethodEvent(QInputMethodEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *event) override |
| virtual void | mouseDoubleClickEvent(QMouseEvent *event) override |
| virtual void | mouseMoveEvent(QMouseEvent *event) override |
| virtual void | mousePressEvent(QMouseEvent *event) override |
| virtual void | mouseReleaseEvent(QMouseEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | timerEvent(QTimerEvent *event) override |
| virtual bool | viewportEvent(QEvent *event) override |
| virtual QSize | viewportSizeHint() const override |
Защищенные слоты
| virtual void | closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint) |
| virtual void | commitData(QWidget *editor) |
| virtual void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) |
| virtual void | dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) |
| virtual void | editorDestroyed(QObject *editor) |
| virtual void | rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) |
| virtual void | rowsInserted(const QModelIndex &parent, int start, int end) |
| virtual void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
| virtual void | updateGeometries() |
Подробное описание
QAbstractItemView — базовый класс для всех стандартных представлений, использующих QAbstractItemModel. QAbstractItemView — абстрактный класс и не может быть непосредственно инстанцирован. Он предоставляет стандартный интерфейс для взаимодействия с моделями с помощью механизма сигналов и слотов, позволяя подклассам оставаться обновлёнными при изменениях в их моделях. Этот класс предоставляет стандартную поддержку навигации по клавиатуре и мыши, прокрутки области просмотра, редактирования элементов и выделений. Навигация по клавиатуре реализует эту функциональность:
| Клавиши | Функциональность |
|---|---|
| Стрелки | Изменяет текущий элемент и выбирает его. |
| Ctrl+Стрелки | Изменяет текущий элемент, но не выбирает его. |
| Shift+Стрелки | Изменяет текущий элемент и выбирает его. Предыдущие выбранные элементы не снимаются с выделения. |
| Ctrl+Пробел | Переключает выделение текущего элемента. |
| Tab/Backtab | Изменяет текущий элемент на следующий/предыдущий. |
| Home/End | Выбирает первый/последний элемент в модели. |
| Page Up/Page Down | Прокручивает отображаемые строки вверх/вниз на количество видимых строк в представлении. |
| Ctrl+A | Выбирает все элементы в модели. |
Обратите внимание, что таблица выше предполагает, что режим выбора (selectionMode) позволяет эти операции. Например, вы не можете выбрать элементы, если режим выбора — 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 — это typedef для 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.
[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().
[virtual protected slot] void QAbstractItemView::commitData(QWidget *editor)
Сохраняет данные из editor в модель.
См. также closeEditor().
[virtual protected slot] void QAbstractItemView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
Этот слот вызывается, когда новый элемент становится текущим элементом. Предыдущий текущий элемент задаётся индексом previous, а новый — индексом current.
Если вам нужно узнать о изменениях в элементах, см. сигнал dataChanged().
[virtual protected slot] void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>())
Этот слот вызывается, когда элементы с заданными roles изменяются в модели. Изменённые элементы находятся от topLeft до bottomRight включительно. Если изменяется только один элемент, topLeft == bottomRight.
roles, которые были изменены, могут быть пустым контейнером (что означает, что всё изменилось), или непустым контейнером с подмножеством ролей, которые были изменены.
[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)
Этот сигнал испускается, когда двойной щелчок мышью по элементу. Элемент, по которому был произведён двойной щелчок, задаётся индексом index. Сигнал испускается только в том случае, если индекс действителен.
См. также clicked() и activated().
[slot] void QAbstractItemView::edit(const QModelIndex &index)
Начинает редактирование элемента, соответствующего данному индексу index, если он редактируемый.
Обратите внимание, что эта функция не изменяет текущий индекс. Поскольку текущий индекс определяет следующие и предыдущие элементы для редактирования, пользователи могут обнаружить, что навигация с клавиатуры не работает должным образом. Чтобы обеспечить согласованное поведение навигации, вызовите setCurrentIndex() перед этой функцией с тем же индексом модели.
См. также QModelIndex::flags().
[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)
Эта функция вызывается, когда заданный editor был уничтожен.
См. также closeEditor().
[signal] void QAbstractItemView::entered(const QModelIndex &index)
Этот сигнал испускается, когда указатель мыши входит в элемент, указанный индексом index. Для работы этой функции необходимо включить отслеживание мыши.
См. также viewportEntered(), activated(), clicked(), doubleClicked() и pressed().
[signal] void QAbstractItemView::pressed(const QModelIndex &index)
Этот сигнал испускается, когда нажата кнопка мыши. Элемент, на который была нажата кнопка, задаётся индексом index. Сигнал испускается только в том случае, если индекс действителен.
Используйте функцию QApplication::mouseButtons() для получения состояния кнопок мыши.
См. также activated(), clicked(), doubleClicked() и entered().
[virtual slot] void QAbstractItemView::reset()
Сбрасывает внутреннее состояние представления.
Предупреждение: Эта функция сбросит открытые редакторы, позиции полос прокрутки, выделения и т. д. Существующие изменения не будут сохранены. Если вы хотите сохранить изменения при сбросе представления, вы можете переопределить эту функцию, сохранить изменения и затем вызвать реализацию базового класса.
[virtual protected slot] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Этот слот вызывается при удалении строк. Удаленные строки находятся под заданным parent с start до end включительно.
См. также rowsInserted().
[virtual protected slot] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)
Этот слот вызывается при вставке строк. Новые строки находятся под заданным parent с start до end включительно. Реализация базового класса вызывает fetchMore() в модели, чтобы проверить наличие дополнительных данных.
См. также rowsAboutToBeRemoved().
[slot] void QAbstractItemView::scrollToBottom()
Прокручивает представление до низа.
Эта функция была добавлена в Qt 4.1.
См. также scrollTo() и scrollToTop().
[slot] void QAbstractItemView::scrollToTop()
Прокручивает представление до верха.
Эта функция была добавлена в Qt 4.1.
См. также scrollTo() и scrollToBottom().
[virtual slot] void QAbstractItemView::selectAll()
Выделяет все элементы в представлении. Эта функция будет использовать поведение выделения, установленное в представлении.
См. также setSelection(), selectedIndexes() и clearSelection().
[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Этот слот вызывается при изменении выделения. Предыдущее выделение (которое может быть пустым) задано deselected, а новое выделение — selected.
См. также setSelection().
[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)
Устанавливает текущим элементом элемент по индексу index.
Если режим текущего выделения не NoSelection, элемент также выделяется. Обратите внимание, что эта функция также обновляет начальную позицию для любых новых выделений, которые выполняет пользователь.
Чтобы установить элемент как текущий без выделения его, вызовите
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
См. также currentIndex(), currentChanged() и selectionMode.
[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)
Устанавливает корневой элемент в элемент по указанному индексу index.
См. также rootIndex().
[slot] void QAbstractItemView::update(const QModelIndex &index)
Обновляет область, занимаемую заданным индексом index.
Эта функция была добавлена в Qt 4.3.
[virtual protected slot] void QAbstractItemView::updateGeometries()
Обновляет геометрию дочерних виджетов представления.
Эта функция была добавлена в Qt 4.4.
[signal] void QAbstractItemView::viewportEntered()
Этот сигнал испускается, когда курсор мыши входит в область просмотра. Для работы этой функции необходимо включить отслеживание курсора мыши.
См. также entered().
[virtual] QAbstractItemView::~QAbstractItemView()
Уничтожает представление.
void QAbstractItemView::closePersistentEditor(const QModelIndex &index)
Закрывает постоянный редактор для элемента по заданному индексу index.
См. также openPersistentEditor() и isPersistentEditorOpen().
QModelIndex QAbstractItemView::currentIndex() const
Возвращает индекс модели текущего элемента.
См. также setCurrentIndex().
[protected] QPoint QAbstractItemView::dirtyRegionOffset() const
Возвращает смещение областей, требующих обновления, в представлении.
Если вы используете scrollDirtyRegion() и реализуете paintEvent() в подклассе QAbstractItemView, вы должны преобразовать область, полученную из события рисования, с помощью смещения, возвращаемого этой функцией.
См. также scrollDirtyRegion() и setDirtyRegion().
[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)
Переопределяет: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).
Эта функция вызывается с заданным event при входе операции перетаскивания и опускания в виджет. Если перетаскивание происходит над допустимым местом опускания (например, над элементом, принимающим опускания), событие принимается; в противном случае оно игнорируется.
См. также dropEvent() и startDrag().
[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)
Переопределяет: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).
Эта функция вызывается, когда элемент, который перетаскивается, покидает представление. Событие event описывает состояние операции перетаскивания и опускания.
[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)
Переопределяет: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).
Эта функция непрерывно вызывается с заданным event во время операции перетаскивания и опускания над виджетом. Она может привести к прокрутке представления, например, если пользователь перетаскивает выделение к правому или нижнему краю представления. В этом случае событие принимается; в противном случае оно игнорируется.
См. также dropEvent() и startDrag().
[override virtual protected] void QAbstractItemView::dropEvent(QDropEvent *event)
Переопределяет: QAbstractScrollArea::dropEvent(QDropEvent *event).
Эта функция вызывается с заданным event при возникновении события опускания над виджетом. Если модель принимает позицию события опускания, событие опускания принимается; в противном случае оно игнорируется.
См. также startDrag().
[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const
Возвращает позицию индикатора опускания относительно ближайшего элемента.
Эта функция была добавлена в Qt 4.1.
[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
Начинает редактирование элемента по индексу index, создавая редактор при необходимости, и возвращает true если состояние представления State теперь EditingState; в противном случае возвращает false.
Действие, вызвавшее процесс редактирования, описывается параметром trigger, а связанное событие — event.
Редактирование может быть принудительно выполнено, если задать триггер как QAbstractItemView::AllEditTriggers.
См. также closeEditor().
[override virtual protected] bool QAbstractItemView::event(QEvent *event)
Переопределяет: QAbstractScrollArea::event(QEvent *event).
[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)
[protected] void QAbstractItemView::executeDelayedItemsLayout()
Выполняет запланированные макеты без ожидания начала обработки событий.
См. также scheduleDelayedItemsLayout().
[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)
Переопределяет: QWidget::focusInEvent(QFocusEvent *event).
Этот метод вызывается с заданным событием, когда виджет получает фокус. По умолчанию, событие игнорируется.
См. также setFocus() и focusOutEvent().
[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)
Переопределяет: QWidget::focusNextPrevChild(bool next).
[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)
Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).
Этот метод вызывается с заданным событием, когда виджет теряет фокус. По умолчанию, событие игнорируется.
См. также 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
Возвращает виджет для элемента по заданному индексу.
Этот метод был введён в Qt 4.1.
См. также setIndexWidget().
[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)
Переопределяет: QWidget::inputMethodEvent(QInputMethodEvent *event).
[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const
Переопределяет: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const
Возвращает true если элемент, на который указывает заданный индекс, скрыт в представлении, в противном случае возвращает 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
Возвращает делегат элементов, используемый этим представлением и моделью для заданного индекса.
QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const
Возвращает делегат элементов, используемый этим представлением и моделью для заданного столбца. Вы можете вызвать itemDelegate(), чтобы получить указатель на текущий делегат для данного индекса.
Этот метод был введён в Qt 4.2.
См. также setItemDelegateForColumn(), itemDelegateForRow(), и itemDelegate().
QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const
Возвращает делегат элементов, используемый этим представлением и моделью для заданной строки, или nullptr если делегат не назначен. Вы можете вызвать itemDelegate(), чтобы получить указатель на текущий делегат для данного индекса.
Этот метод был введён в Qt 4.2.
См. также setItemDelegateForRow(), itemDelegateForColumn(), и setItemDelegate().
[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)
Переопределяет: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).
Этот метод вызывается с заданным событием, когда событие нажатия клавиши отправляется виджету. Базовая реализация обрабатывает основные перемещения курсора, например, Вверх, Вниз, Влево, Вправо, Домой, Вверх страницы и Вниз страницы; сигнал activated() генерируется, если текущий индекс действителен и нажата клавиша активации (например, Enter или Return в зависимости от платформы). В этом методе происходит инициирование редактирования нажатием клавиши, например, если нажата клавиша F2.
См. также edit(), moveCursor(), keyboardSearch() и tabKeyNavigation.
[virtual] void QAbstractItemView::keyboardSearch(const QString &search)
Перемещает и выделяет элемент, наиболее соответствующий строке search. Если элемент не найден, ничего не происходит.
В базовой реализации поиск сбрасывается, если search пустая или промежуток времени с момента последнего поиска превысил QApplication::keyboardInputInterval().
QAbstractItemModel *QAbstractItemView::model() const
Возвращает модель, представляемую этим представлением.
См. также setModel().
[override virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием при двойном щелчке мыши внутри виджета. Если двойной щелчок на действительном элементе, он генерирует сигнал doubleClicked() и вызывает edit() для элемента.
[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием при событии перемещения мыши, отправленном виджету. Если выделение выполняется, и новые элементы перемещаются поверх выделения, выделение расширяется; если выполняется перетаскивание, оно продолжается.
[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием event при нажатии кнопки мыши, когда курсор находится внутри виджета. Если нажата действительная строка, она становится текущей. Этот метод испускает сигнал pressed().
[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).
Этот метод вызывается с заданным событием event при отпускании кнопки мыши после события нажатия на виджете. Если пользователь нажимает мышь внутри вашего виджета, а затем перетаскивает мышь в другое место, прежде чем отпустить кнопку мыши, ваш виджет получит событие отпускания. Метод испустит сигнал clicked() если строка была нажата.
[pure virtual protected] QModelIndex QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
Возвращает объект QModelIndex, указывающий на следующий объект в представлении, на основе заданного cursorAction и модификаторов клавиатуры, указанных modifiers.
В базовом классе это чистая виртуальная функция.
void QAbstractItemView::openPersistentEditor(const QModelIndex &index)
Открывает постоянный редактор для строки по заданному index. Если редактор не существует, делегат создаст новый редактор.
См. также closePersistentEditor() и isPersistentEditorOpen().
[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)
Переопределяет: QAbstractScrollArea::resizeEvent(QResizeEvent *event).
Этот метод вызывается с заданным событием event при получении события изменения размера виджета.
См. также QWidget::resizeEvent().
QModelIndex QAbstractItemView::rootIndex() const
Возвращает индекс модели корневого элемента модели. Корневой элемент — это родительский элемент для элементов верхнего уровня представления. Корень может быть невалидным.
См. также setRootIndex().
[protected] void QAbstractItemView::scheduleDelayedItemsLayout()
Планирует расположение элементов в представлении для выполнения при запуске обработки событий.
Даже если scheduleDelayedItemsLayout() вызывается несколько раз до обработки событий, представление выполнит расположение только один раз.
См. также executeDelayedItemsLayout().
[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)
Подготавливает представление к прокрутке на (dx,dy) пикселей, перемещая области с ошибками в противоположном направлении. Вызывать этот метод необходимо только в случае реализации прокручиваемого области просмотра в вашем подклассе представления.
Если вы реализуете scrollContentsBy() в подклассе QAbstractItemView, вызовите этот метод перед вызовом QWidget::scroll() на области просмотра. Или просто вызовите update().
См. также scrollContentsBy(), dirtyRegionOffset() и setDirtyRegion().
[pure virtual] void QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)
Прокручивает представление при необходимости, чтобы гарантировать видимость строки по index. Представление попытается расположить строку в соответствии с заданным hint.
В базовом классе это чистая виртуальная функция.
[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const
Эта вспомогательная функция возвращает список всех выбранных и не скрытых индексов строк в представлении. Список не содержит дубликатов и не отсортирован.
См. также QItemSelectionModel::selectedIndexes().
[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
Возвращает SelectionFlags, которые должны использоваться при обновлении выбора, чтобы включить указанный index. event — это событие пользовательского ввода, например, событие мыши или клавиатуры.
Переопределите этот метод для определения собственного поведения выбора.
См. также setSelection().
QItemSelectionModel *QAbstractItemView::selectionModel() const
Возвращает текущую модель выбора.
См. также setSelectionModel() и selectedIndexes().
[protected] void QAbstractItemView::setDirtyRegion(const QRegion ®ion)
Помечает заданную region как грязную и планирует её обновление. Вызывать этот метод необходимо только в случае реализации собственного подкласса представления.
Этот метод был представлен в Qt 4.1.
См. также scrollDirtyRegion() и dirtyRegionOffset().
void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)
Устанавливает заданный widget для строки по заданному index, передавая виджет в собственность области просмотра.
Если index недействительна (например, если вы передаете индекс корня), этот метод ничего не сделает.
Свойство autoFillBackground заданного widget должно быть установлено в true, в противном случае фон виджета будет прозрачным, отображая как данные модели, так и строку по заданному index.
Если виджет A заменяется виджетом B, виджет A будет удалён. Например, в приведённом ниже фрагменте кода объект QLineEdit будет удалён.
setIndexWidget(index, new QLineEdit); ... setIndexWidget(index, new QTextEdit);
Этот метод следует использовать только для отображения статического содержимого в видимой области, соответствующей элементу данных. Если вы хотите отобразить пользовательское динамическое содержимое или реализовать пользовательский виджет редактора, подклассифицируйте QStyledItemDelegate вместо этого.
Этот метод был представлен в 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().
END_OF_DOCUMENT_MARKERvoid QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
Устанавливает указанный делегат элементов 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().
[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(QTimerEvent *event).
Эта функция вызывается с указанным event, когда в виджет отправляется событие таймера.
См. также QObject::timerEvent().
[pure virtual protected] int QAbstractItemView::verticalOffset() const
Возвращает вертикальное смещение представления.
В базовом классе это чистая виртуальная функция.
См. также horizontalOffset().
[virtual protected] QStyleOptionViewItem QAbstractItemView::viewOptions() const
Возвращает структуру QStyleOptionViewItem, заполненную палитрой, шрифтом, состоянием, выравниванием и т.д. представления.
[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)
Переопределяет: QAbstractScrollArea::viewportEvent(QEvent *event).
Эта функция используется для обработки подсказок и режима «Что это?», если указанное event является QEvent::ToolTip или QEvent::WhatsThis. Она передает все остальные события своему обработчику базового класса viewportEvent().
Возвращает true если event был распознан и обработан; в противном случае возвращает false.
[override virtual protected] QSize QAbstractItemView::viewportSizeHint() const
Переопределяет: QAbstractScrollArea::viewportSizeHint() const.
Эта функция была добавлена в Qt 5.2.
[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const
Возвращает прямоугольник на области просмотра, занимаемый элементом в index.
Если ваш элемент отображается в нескольких областях, 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.13/qabstractitemview.html