Класс 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 = Q_NULLPTR) | |
| ~QAbstractItemView() | |
| bool | поочереднаяОкраскаСтрок() const |
| int | отступАвтопрокрутки() const |
| void | закрытьПостоянныйРедактор(const QModelIndex &index) |
| QModelIndex | текущаяСтрока() const |
| Qt::DropAction | поведениеПеретаскивания() const |
| DragDropMode | режимПеретаскивания() const |
| bool | режимПерезаписиПеретаскивания() const |
| bool | перетаскиваниеВключено() const |
| EditTriggers | триггерыРедактирования() const |
| bool | автопрокруткаВключена() const |
| ScrollMode | режимГоризонтальнойПрокрутки() const |
| QSize | размерИконки() const |
| virtual QModelIndex | индексВТочке(const QPoint &point) const = 0 |
| QWidget * | виджетИндекса(const QModelIndex &index) const |
| QAbstractItemDelegate * | делегатЭлемента() const |
| QAbstractItemDelegate * | делегатЭлемента(const QModelIndex &index) const |
| QAbstractItemDelegate * | делегатЭлементаДляСтолбца(int column) const |
| QAbstractItemDelegate * | делегатЭлементаДляСтроки(int row) const |
| virtual void | поискСКлавиатуры(const QString &search) |
| QAbstractItemModel * | модель() const |
| void | открытьПостоянныйРедактор(const QModelIndex &index) |
| void | сброситьРежимГоризонтальнойПрокрутки() |
| void | сброситьРежимВертикальнойПрокрутки() |
| QModelIndex | корневойИндекс() const |
| virtual void | прокрутитьДо(const QModelIndex &index, ScrollHint hint = EnsureVisible) = 0 |
| QAbstractItemView::SelectionBehavior | поведениеВыделения() const |
| QAbstractItemView::SelectionMode | режимВыделения() const |
| QItemSelectionModel * | модельВыделения() const |
| void | установитьПоочереднуюОкраскуСтрок(bool enable) |
| void | установитьАвтопрокрутку(bool enable) |
| void | установитьОтступАвтопрокрутки(int margin) |
| void | установитьПоведениеПеретаскивания(Qt::DropAction dropAction) |
| void | установитьРежимПеретаскивания(DragDropMode behavior) |
| void | установитьРежимПерезаписиПеретаскивания(bool overwrite) |
| void | установитьПеретаскивание(bool enable) |
| void | установитьИндикаторПеретаскивания(bool enable) |
| void | установитьТриггерыРедактирования(EditTriggers triggers) |
| void | установитьРежимГоризонтальнойПрокрутки(ScrollMode mode) |
| void | установитьРазмерИконки(const QSize &size) |
| void | установитьВиджетИндекса(const QModelIndex &index, QWidget *widget) |
| void | установитьДелегатЭлемента(QAbstractItemDelegate *delegate) |
| void | установитьДелегатЭлементаДляСтолбца(int column, QAbstractItemDelegate *delegate) |
| void | установитьДелегатЭлементаДляСтроки(int row, QAbstractItemDelegate *delegate) |
| virtual void | установитьМодель(QAbstractItemModel *model) |
| void | установитьПоведениеВыделения(QAbstractItemView::SelectionBehavior behavior) |
| void | установитьРежимВыделения(QAbstractItemView::SelectionMode mode) |
| virtual void | установитьМодельВыделения(QItemSelectionModel *selectionModel) |
| void | установитьПереходНаСледующуюЯчейкуТабом(bool enable) |
| void | установитьРежимОбрезанияТекста(Qt::TextElideMode mode) |
| void | установитьРежимВертикальнойПрокрутки(ScrollMode mode) |
| bool | индикаторПеретаскиванияОтображен() const |
| virtual int | размерНаМестаСтолбца(int column) const |
| QSize | размерНаМестаИндекса(const QModelIndex &index) const |
| virtual int | sizeHintForRow(int row) const |
| bool | tabKeyNavigation() const |
| Qt::TextElideMode | textElideMode() const |
| ScrollMode | verticalScrollMode() const |
| virtual QRect | visualRect(const QModelIndex &index) const = 0 |
Реализованные публичные функции
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const |
- 20 публичных функций унаследованных от QAbstractScrollArea
- 14 публичных функций унаследованных от QFrame
- 214 публичных функций унаследованных от QWidget
- 32 публичных функций унаследованных от QObject
- 14 публичных функций унаследованных от QPaintDevice
Публичные слоты
| void | clearSelection() |
| void | edit(const QModelIndex &index) |
| virtual void | reset() |
| void | scrollToBottom() |
| void | scrollToTop() |
| virtual void | selectAll() |
| void | setCurrentIndex(const QModelIndex &index) |
| virtual 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 |
| DropIndicatorPosition | dropIndicatorPosition() const |
| virtual bool | edit(const QModelIndex &index, EditTrigger trigger, QEvent *event) |
| void | executeDelayedItemsLayout() |
| virtual int | horizontalOffset() const = 0 |
| virtual bool | isIndexHidden(const QModelIndex &index) const = 0 |
| virtual QModelIndex | moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0 |
| void | scheduleDelayedItemsLayout() |
| void | scrollDirtyRegion(int dx, int dy) |
| virtual QModelIndexList | selectedIndexes() const |
| virtual QItemSelectionModel::SelectionFlags | selectionCommand(const QModelIndex &index, const QEvent *event = Q_NULLPTR) const |
| void | setDirtyRegion(const QRegion ®ion) |
| virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0 |
| void | setState(State state) |
| virtual void | startDrag(Qt::DropActions supportedActions) |
| State | state() const |
| virtual int | verticalOffset() const = 0 |
| virtual QStyleOptionViewItem | viewOptions() const |
| virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const = 0 |
Реализованные защищенные функции
| виртуальный void | dragEnterEvent(QDragEnterEvent *event) |
| виртуальный void | dragLeaveEvent(QDragLeaveEvent *event) |
| виртуальный void | dragMoveEvent(QDragMoveEvent *event) |
| виртуальный void | dropEvent(QDropEvent *event) |
| виртуальный bool | event(QEvent *event) |
| виртуальный void | focusInEvent(QFocusEvent *event) |
| виртуальный bool | focusNextPrevChild(bool next) |
| виртуальный void | focusOutEvent(QFocusEvent *event) |
| виртуальный void | inputMethodEvent(QInputMethodEvent *event) |
| виртуальный void | keyPressEvent(QKeyEvent *event) |
| виртуальный void | mouseDoubleClickEvent(QMouseEvent *event) |
| виртуальный void | mouseMoveEvent(QMouseEvent *event) |
| виртуальный void | mousePressEvent(QMouseEvent *event) |
| виртуальный void | mouseReleaseEvent(QMouseEvent *event) |
| виртуальный void | resizeEvent(QResizeEvent *event) |
| виртуальный void | timerEvent(QTimerEvent *event) |
| виртуальный bool | viewportEvent(QEvent *event) |
| виртуальный QSize | viewportSizeHint() const |
- 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
Дополнительные унаследованные члены
- 5 статических публичных членов, унаследованных от QWidget
- 11 статических публичных членов, унаследованных от QObject
Подробное описание
Класс QAbstractItemView предоставляет базовые возможности для классов виджетов отображения элементов.
QAbstractItemView — это базовый класс для всех стандартных виджетов, которые используют QAbstractItemModel. QAbstractItemView — абстрактный класс и сам по себе не может быть создан. Он предоставляет стандартный интерфейс для взаимодействия с моделями через механизм сигналов и слотов, что позволяет подклассам оставаться в курсе изменений в их моделях. Этот класс обеспечивает стандартную поддержку навигации с клавиатуры и мыши, прокрутки области просмотра, редактирования элементов и выделения. Навигация с клавиатуры реализует эту функциональность:
| Клавиши | Функциональность |
|---|---|
| Стрелки | Изменяет текущий элемент и выделяет его. |
| Ctrl+Стрелки | Изменяет текущий элемент, но не выделяет его. |
| Shift+Стрелки | Изменяет текущий элемент и выделяет его. Предыдущий(ие) выделенный(ые) элемент(ы) не снимаются с выделения. |
| Ctrl+Пробел | Переключает выделение текущего элемента. |
| Tab/Backtab | Изменяет текущий элемент на следующий/предыдущий элемент. |
| Home/End | Выделяет первый/последний элемент в модели. |
| Page up/Page down | Прокручивает строки, отображаемые вверх/вниз, на количество видимых строк в представлении. |
| Ctrl+A | Выделяет все элементы в модели. |
Обратите внимание, что в таблице предполагается, что режим выделения selection mode допускает операции. Например, вы не можете выделить элементы, если режим выделения — QAbstractItemView::NoSelection.
Класс QAbstractItemView является одним из классов модели/представления и входит в состав фреймворка Qt модель/представление.
Классы виджетов, наследующие QAbstractItemView, должны только реализовывать собственные специфичные для виджета функции, такие как рисование элементов, возвращение геометрии элементов, поиск элементов и т. д.
QAbstractItemView предоставляет общие слоты, такие как edit() и setCurrentIndex(). Также предоставляется много защищенных слотов, включая dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged() и currentChanged().
Корневой элемент возвращается функцией rootIndex(), а текущий — функцией currentIndex(). Чтобы убедиться, что элемент виден, используйте scrollTo().
Некоторые функции QAbstractItemView связаны с прокруткой, например, setHorizontalScrollMode() и setVerticalScrollMode(). Для установки диапазона полос прокрутки можно, например, переопределить функцию resizeEvent() виджета:
void MyView::resizeEvent(QResizeEvent *event) {
horizontalScrollBar()->setRange(0, realWidth - width());
...
} Обратите внимание, что диапазон обновляется только после отображения виджета.
Несколько других функций связаны с управлением выделением, например, setSelectionMode() и setSelectionBehavior(). Этот класс предоставляет модель выделения по умолчанию для работы (selectionModel()), но её можно заменить, используя setSelectionModel() с экземпляром QItemSelectionModel.
Для полного управления отображением и редактированием элементов можно указать делегат с помощью setItemDelegate().
QAbstractItemView предоставляет множество защищенных функций. Некоторые из них связаны с редактированием, например, edit() и commitData(), в то время как другие — обработчики событий клавиатуры и мыши.
Примечание: Если вы наследуете от QAbstractItemView и намерены обновить содержимое области просмотра, используйте viewport->update() вместо update(), так как все операции рисования выполняются в области просмотра.
См. также Классы представлений, Программирование по модели-представлению, QAbstractItemModel и Пример диаграммы.
Документация типов членов
enum QAbstractItemView::CursorAction
Этот перечисление описывает различные способы навигации между элементами.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::MoveUp |
0 |
Переместиться к элементу, расположенному над текущим. |
QAbstractItemView::MoveDown |
1 |
Переместиться к элементу, расположенному под текущим. |
QAbstractItemView::MoveLeft |
2 |
Переместиться к элементу слева от текущего. |
QAbstractItemView::MoveRight |
3 |
Переместиться к элементу справа от текущего. |
QAbstractItemView::MoveHome |
4 |
Переместиться к элементу в верхнем левом углу. |
QAbstractItemView::MoveEnd |
5 |
Переместиться к элементу в нижнем правом углу. |
QAbstractItemView::MovePageUp |
6 |
Переместиться на страницу вверх над текущим элементом. |
QAbstractItemView::MovePageDown |
7 |
Переместиться на страницу вниз под текущим элементом. |
QAbstractItemView::MoveNext |
8 |
Переместиться к элементу после текущего. |
QAbstractItemView::MovePrevious |
9 |
Переместиться к элементу перед текущим. |
См. также moveCursor().
enum QAbstractItemView::DragDropMode
Описывает различные события перетаскивания и опускания, на которые может реагировать представление. По умолчанию представление не поддерживает перетаскивание или опускание (NoDragDrop).
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::NoDragDrop |
0 |
Не поддерживает перетаскивание или опускание. |
QAbstractItemView::DragOnly |
1 |
Представление поддерживает перетаскивание собственных элементов. |
QAbstractItemView::DropOnly |
2 |
Представление принимает опускания. |
QAbstractItemView::DragDrop |
3 |
Представление поддерживает перетаскивание и опускание. |
QAbstractItemView::InternalMove |
4 |
Представление принимает только операции перемещения (не копирования) только из себя. |
Обратите внимание, что используемая модель должна поддерживать операции перетаскивания и опускания.
Это перечисление было введено или изменено в Qt 4.2.
См. также setDragDropMode() и Использование перетаскивания и опускания с представлениями элементов.
enum QAbstractItemView::DropIndicatorPosition
Это перечисление указывает положение индикатора опускания по отношению к индексу в текущем положении курсора мыши:
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::OnItem |
0 |
Элемент будет опущен на индекс. |
QAbstractItemView::AboveItem |
1 |
Элемент будет опущен над индексом. |
QAbstractItemView::BelowItem |
2 |
Элемент будет опущен под индексом. |
QAbstractItemView::OnViewport |
3 |
Элемент будет опущен на область просмотра без элементов. Способ, которым каждое представление обрабатывает элементы, опущенные в область просмотра, зависит от поведения используемой базовой модели. |
enum QAbstractItemView::EditTriggerflags QAbstractItemView::EditTriggers
Это перечисление описывает действия, которые инициируют редактирование элемента.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::NoEditTriggers |
0 |
Редактирование невозможно. |
QAbstractItemView::CurrentChanged |
1 |
Редактирование начинается при изменении текущего элемента. |
QAbstractItemView::DoubleClicked |
2 |
Редактирование начинается при двойном щелчке по элементу. |
QAbstractItemView::SelectedClicked |
4 |
Редактирование начинается при щелчке по уже выбранному элементу. |
QAbstractItemView::EditKeyPressed |
8 |
Редактирование начинается при нажатии клавиши редактирования платформы над элементом. |
QAbstractItemView::AnyKeyPressed |
16 |
Редактирование начинается при нажатии любой клавиши над элементом. |
QAbstractItemView::AllEditTriggers |
31 |
Редактирование начинается для всех вышеуказанных действий. |
Тип EditTriggers — это псевдоним для QFlags<EditTrigger>. Он хранит логическое ИЛИ сочетание значений EditTrigger.
enum QAbstractItemView::ScrollHint
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::EnsureVisible |
0 |
Прокрутить, чтобы гарантировать видимость элемента. |
QAbstractItemView::PositionAtTop |
1 |
Прокрутить для позиционирования элемента в верхней части области просмотра. |
QAbstractItemView::PositionAtBottom |
2 |
Прокрутить для позиционирования элемента в нижней части области просмотра. |
QAbstractItemView::PositionAtCenter |
3 |
Прокрутить для позиционирования элемента в центре области просмотра. |
enum QAbstractItemView::ScrollMode
Описывает, как должен вести себя скроллбар. При установке режима прокрутки ScrollPerPixel размер одного шага будет автоматически настраиваться, если он не был явно установлен с помощью setSingleStep(). Автоматическая настройка может быть восстановлена, установив размер шага в -1.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::ScrollPerItem |
0 |
Представление будет прокручивать содержимое на один элемент за раз. |
QAbstractItemView::ScrollPerPixel |
1 |
Представление будет прокручивать содержимое на один пиксель за раз. |
Это перечисление было введено или изменено в Qt 4.2.
enum QAbstractItemView::SelectionBehavior
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::SelectItems |
0 |
Выбор отдельных элементов. |
QAbstractItemView::SelectRows |
1 |
Выбор только строк. |
QAbstractItemView::SelectColumns |
2 |
Выбор только столбцов. |
enum QAbstractItemView::SelectionMode
Это перечисление указывает, как представление реагирует на пользовательские выделения:
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::SingleSelection |
1 |
При выборе пользователем элемента, все ранее выбранные элементы становятся невыбранными. Пользователь может отменить выбор выбранного элемента. |
QAbstractItemView::ContiguousSelection |
4 |
При обычном выборе пользователем элемента, выбор очищается, и выбирается новый элемент. Однако, если пользователь нажимает клавишу Shift при щелчке по элементу, все элементы между текущим элементом и щелкнутым элементом выбираются или убираются с выбора, в зависимости от состояния щелкнутого элемента. |
QAbstractItemView::ExtendedSelection |
3 |
При обычном выборе пользователем элемента, выбор очищается, и выбирается новый элемент. Однако, если пользователь нажимает клавишу Ctrl при щелчке по элементу, щелкнутый элемент переключается в противоположное состояние, а остальные элементы остаются без изменений. Если пользователь нажимает клавишу Shift при щелчке по элементу, все элементы между текущим элементом и щелкнутым элементом выбираются или убираются с выбора, в зависимости от состояния щелкнутого элемента. Несколько элементов можно выбрать, перетащив курсор мыши по ним. |
QAbstractItemView::MultiSelection |
2 |
При обычном выборе пользователем элемента, состояние выбора этого элемента переключается, а другие элементы остаются без изменений. Несколько элементов можно переключить, перетащив курсор мыши по ним. |
QAbstractItemView::NoSelection |
0 |
Элементы не могут быть выбраны. |
Наиболее часто используемыми режимами являются SingleSelection и ExtendedSelection.
enum QAbstractItemView::State
Описывает различные состояния, в которых может находиться представление. Это обычно интересно только при реализации собственного представления.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractItemView::NoState |
0 |
Это состояние по умолчанию. |
QAbstractItemView::DraggingState |
1 |
Пользователь перетаскивает элементы. |
QAbstractItemView::DragSelectingState |
2 |
Пользователь выбирает элементы. |
QAbstractItemView::EditingState |
3 |
Пользователь редактирует элемент в редакторе виджетов. |
QAbstractItemView::ExpandingState |
4 |
Пользователь открывает ветвь элементов. |
QAbstractItemView::CollapsingState |
5 |
Пользователь закрывает ветвь элементов. |
QAbstractItemView::AnimatingState |
6 |
Представление элементов выполняет анимацию. |
Свойства
alternatingRowColors : bool
Это свойство определяет, следует ли рисовать фон с чередующимися цветами
Если это свойство имеет значение true, фон элемента будет нарисован с использованием QPalette::Base и QPalette::AlternateBase; в противном случае фон будет нарисован с использованием цвета QPalette::Base.
По умолчанию это свойство имеет значение false.
Функции доступа:
| bool | alternatingRowColors() const |
| void | setAlternatingRowColors(bool enable) |
autoScroll : bool
Это свойство определяет, включена ли автоматическая прокрутка при событиях перетаскивания
Если это свойство установлено в true (по умолчанию), QAbstractItemView автоматически прокручивает содержимое представления, если пользователь перетаскивает в пределах 16 пикселей от края области просмотра. Если текущий элемент изменяется, представление будет автоматически прокручиваться, чтобы обеспечить полную видимость текущего элемента.
Это свойство работает только в том случае, если область просмотра принимает перетаскивание. Автоматическая прокрутка выключается, если установить это свойство в false.
Функции доступа:
| bool | hasAutoScroll() const |
| void | setAutoScroll(bool enable) |
autoScrollMargin : int
Это свойство определяет размер области, когда активируется автоматическая прокрутка
Это свойство управляет размером области на краю области просмотра, которая запускает автоматическую прокрутку. Значение по умолчанию — 16 пикселей.
Это свойство было добавлено в Qt 4.4.
Функции доступа:
| int | autoScrollMargin() const |
| void | setAutoScrollMargin(int margin) |
defaultDropAction : Qt::DropAction
Это свойство хранит действие перетаскивания, которое будет использоваться по умолчанию в QAbstractItemView::drag()
Если свойство не установлено, действием перетаскивания является CopyAction, когда поддерживаемые действия поддерживают CopyAction.
Это свойство было добавлено в Qt 4.6.
Функции доступа:
| Qt::DropAction | defaultDropAction() const |
| void | setDefaultDropAction(Qt::DropAction dropAction) |
См. также showDropIndicator и dragDropOverwriteMode.
dragDropMode : DragDropMode
Это свойство хранит событие перетаскивания, на которое будет реагировать представление
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| DragDropMode | dragDropMode() const |
| void | setDragDropMode(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, объединенных с использованием оператора ИЛИ. Представление будет инициировать редактирование элемента только в том случае, если выполненное действие установлено в этом свойстве.
Функции доступа:
| EditTriggers | editTriggers() const |
| void | setEditTriggers(EditTriggers triggers) |
horizontalScrollMode : ScrollMode
как представление прокручивает свое содержимое в горизонтальном направлении
Это свойство управляет тем, как представление прокручивает свое содержимое по горизонтали. Прокрутка может выполняться либо по пикселям, либо по элементам. Его значение по умолчанию поступает из стиля через подсказку стиля QStyle::SH_ItemView_ScrollMode.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| ScrollMode | horizontalScrollMode() const |
| void | setHorizontalScrollMode(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.
Функции доступа:
| ScrollMode | verticalScrollMode() const |
| void | setVerticalScrollMode(ScrollMode mode) |
| void | resetVerticalScrollMode() |
Документация по членам-функциям
QAbstractItemView::QAbstractItemView(QWidget *parent = Q_NULLPTR)
Конструирует абстрактное представление элементов с заданным parent.
QAbstractItemView::~QAbstractItemView()
Уничтожает представление.
[signal] void QAbstractItemView::activated(const QModelIndex &index)
Этот сигнал излучается, когда пользователь активирует элемент, заданный индексом index. Способ активации элементов зависит от платформы; например, щелчком левой кнопкой мыши, двойным щелчком, или нажатием клавиши Ввод или 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().
[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().
[virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)
Переопределён из QWidget::dragEnterEvent().
Эта функция вызывается с заданным event, когда операция перетаскивания и падения входит в виджет. Если перетаскивание происходит над допустимым местом падения (например, над элементом, который принимает падения), событие принимается; в противном случае оно игнорируется.
См. также dropEvent() и startDrag().
[virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)
Переопределено из QWidget::dragLeaveEvent().
Этот метод вызывается, когда элемент, который перетаскивается, покидает область просмотра. Свойство event описывает состояние операции перетаскивания и отпускания.
[virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)
Переопределено из QWidget::dragMoveEvent().
Этот метод вызывается непрерывно с заданным event во время операции перетаскивания и отпускания над виджетом. Он может вызвать прокрутку просмотра, если, например, пользователь перетаскивает выделение к правому или нижнему краю просмотра. В этом случае событие будет принято; в противном случае оно будет проигнорировано.
См. также dropEvent() и startDrag().
[virtual protected] void QAbstractItemView::dropEvent(QDropEvent *event)
Переопределено из QWidget::dropEvent().
Этот метод вызывается с заданным event, когда происходит событие отпускания над виджетом. Если модель принимает позицию события отпускания, то событие отпускания принимается; в противном случае оно игнорируется.
См. также startDrag().
[protected] 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, 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().
[virtual protected] bool QAbstractItemView::event(QEvent *event)
Переопределено из QObject::event().
[protected] void QAbstractItemView::executeDelayedItemsLayout()
Выполняет запланированные макеты без ожидания начала обработки событий.
См. также scheduleDelayedItemsLayout().
[virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)
Переопределено из QWidget::focusInEvent().
Этот метод вызывается с заданным event, когда виджет получает фокус. По умолчанию событие игнорируется.
См. также setFocus() и focusOutEvent().
[virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)
Переопределено из QWidget::focusNextPrevChild().
[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().
[virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)
Переопределено из QWidget::inputMethodEvent().
[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.
В базовом классе это чисто виртуальная функция.
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().
[virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)
Переопределено из QWidget::keyPressEvent().
Этот метод вызывается с заданным event, когда событие нажатия клавиши отправляется в виджет. Базовая реализация обрабатывает основные перемещения курсора, например, Вверх, Вниз, Влево, Вправо, Начало, Пред. страница, и След. страница; сигнал activated() излучается, если текущий индекс действителен и нажата клавиша активации (например, Enter или Возврат, в зависимости от платформы). Этот метод используется для инициирования редактирования нажатием клавиши, например, при нажатии F2.
См. также edit(), moveCursor(), keyboardSearch() и tabKeyNavigation.
[virtual] void QAbstractItemView::keyboardSearch(const QString &search)
Перемещает и выделяет элемент, лучше всего соответствующий строке search. Если элемент не найден, ничего не происходит.
В базовой реализации поиск сбрасывается, если search пустая или интервал времени с момента последнего поиска превысил QApplication::keyboardInputInterval().
QAbstractItemModel *QAbstractItemView::model() const
Возвращает модель, представляемую этим представлением.
См. также setModel().
[virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)
Переопределено из QWidget::mouseDoubleClickEvent().
Этот метод вызывается с заданным event, когда кнопка мыши дважды нажимается внутри виджета. Если двойной щелчок происходит по валидному элементу, излучается сигнал doubleClicked() и вызывается edit() для этого элемента.
[virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)
Переопределено из QWidget::mouseMoveEvent().
Этот метод вызывается с заданным event, когда событие перемещения мыши отправляется в виджет. Если выполняется выбор и новые элементы перемещаются поверх выделения, выделение расширяется; если выполняется перетаскивание, оно продолжается.
[virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)
Переопределено из QWidget::mousePressEvent().
Этот метод вызывается с заданным event, когда кнопка мыши нажата, а курсор находится внутри виджета. Если нажат валидный элемент, он становится текущим элементом. Этот метод излучает сигнал pressed().
[virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)
Переопределено из QWidget::mouseReleaseEvent().
Этот метод вызывается с заданным event, когда кнопка мыши отпускается после события нажатия мыши на виджете. Если пользователь нажимает кнопку мыши внутри вашего виджета, а затем перетаскивает мышь в другое место, прежде чем отпустить кнопку мыши, ваш виджет получает событие отпускания. Метод излучит сигнал clicked(), если элемент нажимался.
[pure virtual protected] QModelIndex QAbstractItemView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
Возвращает объект QModelIndex, указывающий на следующий объект в представлении, на основе заданного cursorAction и модификаторов клавиатуры, указанных в modifiers.
В базовом классе это чистая виртуальная функция.
void QAbstractItemView::openPersistentEditor(const QModelIndex &index)
Открывает постоянный редактор для элемента в заданном index. Если редактор не существует, делегат создаст новый редактор.
См. также closePersistentEditor().
[signal] void QAbstractItemView::pressed(const QModelIndex &index)
Этот сигнал излучается при нажатии кнопки мыши. Элемент, на котором была нажата кнопка мыши, указан в index. Сигнал излучается только при валидном индексе.
Используйте функцию QApplication::mouseButtons(), чтобы получить состояние кнопок мыши.
См. также activated(), clicked(), doubleClicked() и entered().
[virtual slot] void QAbstractItemView::reset()
Сбрасывает внутреннее состояние представления.
Предупреждение: Этот метод сбросит открытые редакторы, позиции полос прокрутки, выделения и т. д. Существующие изменения не будут сохранены. Если вы хотите сохранить изменения при сбросе представления, вы можете переопределить этот метод, сохранить свои изменения, а затем вызвать реализацию суперкласса.
[virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)
Переопределено из QWidget::resizeEvent().
Этот метод вызывается с заданным event, когда событие изменения размера отправляется в виджет.
См. также QWidget::resizeEvent().
QModelIndex QAbstractItemView::rootIndex() const
Возвращает индекс модели корневого элемента модели. Корневой элемент — это родительский элемент для элементов представления верхнего уровня. Корень может быть невалидным.
См. также setRootIndex().
[virtual protected slot] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Этот слот вызывается, когда строки собираются для удаления. Удаляемые строки — это те, что находятся под заданным parent от start до end включительно.
См. также rowsInserted().
[virtual protected slot] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)
Этот слот вызывается, когда строки вставляются. Новые строки — это те, что находятся под заданным parent от start до end включительно. Реализация базового класса вызывает fetchMore() у модели для проверки наличия дополнительных данных.
См. также rowsAboutToBeRemoved().
[protected] void QAbstractItemView::scheduleDelayedItemsLayout()
Планирует размещение элементов в представлении для выполнения при начале обработки событий.
Даже если scheduleDelayedItemsLayout() вызывается несколько раз до обработки событий, представление выполнит размещение только один раз.
См. также executeDelayedItemsLayout().
[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)
Подготавливает представление к прокрутке на (dx,dy) пикселей, перемещая грязные области в противоположном направлении. Вы должны вызывать эту функцию только в случае реализации области прокрутки в подклассе представления.
Если вы реализуете scrollContentsBy() в подклассе QAbstractItemView, вызовите эту функцию перед вызовом QWidget::scroll() в области прокрутки. В качестве альтернативы, просто вызовите update().
См. также scrollContentsBy(), dirtyRegionOffset() и setDirtyRegion().
[pure virtual] void QAbstractItemView::scrollTo(const QModelIndex &index, 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 = Q_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, передавая права владения виджету в представление.
Если 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 или затронутым им.
При реализации собственного виджета itemview функция 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(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] State QAbstractItemView::state() const
Возвращает состояние виджета представления элементов.
См. также setState().
[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().
[virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)
Переопределена из QAbstractScrollArea::viewportEvent().
Эта функция используется для обработки всплывающих подсказок и режима «Что это?», если заданное event является QEvent::ToolTip или QEvent::WhatsThis. Все остальные события передаются обработчику базового класса viewportEvent().
[virtual protected] QSize QAbstractItemView::viewportSizeHint() const
Переопределена из QAbstractScrollArea::viewportSizeHint().
Эта функция была добавлена в 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.9/qabstractitemview.html