Spec-Zone.ru › Qt 6.0

Класс QAbstractItemView

Класс QAbstractItemView предоставляет базовые функции для классов представления элементов. Подробнее...

Заголовок: #include <QAbstractItemView>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QAbstractScrollArea
Наследуется от:

QColumnView, QHeaderView, QListView, QTableView и QTreeView

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Типы

Перечисление DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove }
Перечисление EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers }
Флаги EditTriggers
Перечисление ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter }
Перечисление ScrollMode { ScrollPerItem, ScrollPerPixel }
Перечисление SelectionBehavior { SelectItems, SelectRows, SelectColumns }
Перечисление SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection }

Свойства

  • alternatingRowColors : bool
  • autoScroll : bool
  • autoScrollMargin : int
  • defaultDropAction : Qt::DropAction
  • dragDropMode : DragDropMode
  • dragDropOverwriteMode : bool
  • dragEnabled : bool
  • editTriggers : EditTriggers
  • horizontalScrollMode : ScrollMode
  • iconSize : QSize
  • selectionBehavior : SelectionBehavior
  • selectionMode : SelectionMode
  • showDropIndicator : bool
  • tabKeyNavigation : bool
  • textElideMode : Qt::TextElideMode
  • verticalScrollMode : ScrollMode

Открытые функции

QAbstractItemView(QWidget *parent = nullptr)
virtual ~QAbstractItemView()
bool alternatingRowColors() const
int autoScrollMargin() const
void closePersistentEditor(const QModelIndex &index)
QModelIndex currentIndex() const
Qt::DropAction defaultDropAction() const
QAbstractItemView::DragDropMode dragDropMode() const
bool dragDropOverwriteMode() const
bool dragEnabled() const
QAbstractItemView::EditTriggers editTriggers() const
bool hasAutoScroll() const
QAbstractItemView::ScrollMode horizontalScrollMode() const
QSize iconSize() const
virtual QModelIndex indexAt(const QPoint &point) const = 0
QWidget * indexWidget(const QModelIndex &index) const
bool isPersistentEditorOpen(const QModelIndex &index) const
QAbstractItemDelegate * itemDelegate() const
QAbstractItemDelegate * itemDelegateForColumn(int column) const
virtual QAbstractItemDelegate * itemDelegateForIndex(const QModelIndex &index) const
QAbstractItemDelegate * itemDelegateForRow(int row) const
virtual void keyboardSearch(const QString &search)
QAbstractItemModel * model() const
void openPersistentEditor(const QModelIndex &index)
void resetHorizontalScrollMode()
void resetVerticalScrollMode()
QModelIndex rootIndex() const
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) = 0
QAbstractItemView::SelectionBehavior selectionBehavior() const
QAbstractItemView::SelectionMode selectionMode() const
QItemSelectionModel * selectionModel() const
void setAlternatingRowColors(bool enable)
void setAutoScroll(bool enable)
void setAutoScrollMargin(int margin)
void setDefaultDropAction(Qt::DropAction dropAction)
void setDragDropMode(QAbstractItemView::DragDropMode behavior)
void setDragDropOverwriteMode(bool overwrite)
void setDragEnabled(bool enable)
void setDropIndicatorShown(bool enable)
void setEditTriggers(QAbstractItemView::EditTriggers triggers)
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void setIconSize(const QSize &size)
void setIndexWidget(const QModelIndex &index, QWidget *widget)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
void setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
virtual void setModel(QAbstractItemModel *model)
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)
void setSelectionMode(QAbstractItemView::SelectionMode mode)
virtual void setSelectionModel(QItemSelectionModel *selectionModel)
void setTabKeyNavigation(bool enable)
void setTextElideMode(Qt::TextElideMode mode)
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
bool showDropIndicator() const
виртуальный int sizeHintForColumn(int column) const
QSize sizeHintForIndex(const QModelIndex &index) const
виртуальный int sizeHintForRow(int row) const
bool tabKeyNavigation() const
Qt::TextElideMode textElideMode() const
QAbstractItemView::ScrollMode verticalScrollMode() const
виртуальный QRect visualRect(const QModelIndex &index) const = 0

Реализованные публичные функции

виртуальный QVariant inputMethodQuery(Qt::InputMethodQuery query) const override

Публичные слоты

void clearSelection()
void edit(const QModelIndex &index)
виртуальный void reset()
void прокрутитьВниз()
void прокрутитьВверх()
виртуальный void выделитьВсе()
void установитьТекущийИндекс(const QModelIndex &index)
виртуальный void установитьКорневойИндекс(const QModelIndex &index)
void обновить(const QModelIndex &index)

Сигналы

void activated(const QModelIndex &index)
void clicked(const QModelIndex &index)
void doubleClicked(const QModelIndex &index)
void entered(const QModelIndex &index)
void iconSizeChanged(const QSize &size)
void pressed(const QModelIndex &index)
void viewportEntered()

Защищенные типы

перечисление CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious }
перечисление DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport }
перечисление State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState }

Защищенные функции

QPoint dirtyRegionOffset() const
QAbstractItemView::DropIndicatorPosition dropIndicatorPosition() const
виртуальный bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
void executeDelayedItemsLayout()
виртуальный int horizontalOffset() const = 0
виртуальный void initViewItemOption(QStyleOptionViewItem *option) const
виртуальный bool isIndexHidden(const QModelIndex &index) const = 0
виртуальный QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0
void scheduleDelayedItemsLayout()
void scrollDirtyRegion(int dx, int dy)
виртуальный QModelIndexList selectedIndexes() const
виртуальный QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
void setDirtyRegion(const QRegion &region)
виртуальный void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0
void setState(QAbstractItemView::State state)
виртуальный void startDrag(Qt::DropActions supportedActions)
QAbstractItemView::State state() const
виртуальный int verticalOffset() const = 0
виртуальный QRegion visualRegionForSelection(const QItemSelection &selection) const = 0

Реализованные защищенные функции

виртуальный void dragEnterEvent(QDragEnterEvent *event) override
виртуальный void dragLeaveEvent(QDragLeaveEvent *event) override
виртуальный void dragMoveEvent(QDragMoveEvent *event) override
виртуальный void dropEvent(QDropEvent *event) override
виртуальный bool event(QEvent *event) override
виртуальный bool eventFilter(QObject *object, QEvent *event) override
виртуальный void focusInEvent(QFocusEvent *event) override
виртуальный bool focusNextPrevChild(bool next) override
виртуальный void focusOutEvent(QFocusEvent *event) override
виртуальный void inputMethodEvent(QInputMethodEvent *event) override
виртуальный void keyPressEvent(QKeyEvent *event) override
виртуальный void mouseDoubleClickEvent(QMouseEvent *event) override
виртуальный void mouseMoveEvent(QMouseEvent *event) override
виртуальный void mousePressEvent(QMouseEvent *event) override
виртуальный void mouseReleaseEvent(QMouseEvent *event) override
виртуальный void resizeEvent(QResizeEvent *event) override
виртуальный void timerEvent(QTimerEvent *event) override
виртуальный bool viewportEvent(QEvent *event) override
виртуальный QSize viewportSizeHint() const override

Защищенные слоты

виртуальный void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)
виртуальный void commitData(QWidget *editor)
виртуальный void currentChanged(const QModelIndex &current, const QModelIndex &previous)
виртуальный void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())
виртуальный void editorDestroyed(QObject *editor)
виртуальный void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
виртуальный void rowsInserted(const QModelIndex &parent, int start, int end)
виртуальный void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
виртуальный void updateGeometries()

Подробное описание

Класс QAbstractItemView является базовым классом для всех стандартных представлений, использующих QAbstractItemModel. QAbstractItemView — абстрактный класс и сам не может быть инстанцирован. Он предоставляет стандартный интерфейс для взаимодействия с моделями через механизм сигналов и слотов, позволяя подклассам оставаться в актуальном состоянии при изменениях в моделях. Этот класс обеспечивает стандартную поддержку навигации с помощью клавиатуры и мыши, прокрутки области просмотра, редактирования элементов и выделения. Навигация с помощью клавиатуры реализует эту функциональность:

Клавиши Функциональность
Стрелки Изменяет текущий элемент и выделяет его.
Ctrl+Стрелки Изменяет текущий элемент, но не выделяет его.
Shift+Стрелки Изменяет текущий элемент и выделяет его. Предыдущие выделенные элементы не снимаются с выделения.
Ctrl+Пробел Переключает выделение текущего элемента.
Tab/Backtab Изменяет текущий элемент на следующий/предыдущий элемент.
Home/End Выделяет первый/последний элемент в модели.
Page Up/Page Down Прокручивает отображаемые строки вверх/вниз на количество видимых строк в представлении.
Ctrl+A Выделяет все элементы в модели.

Обратите внимание, что в таблице предполагается, что режим выделения selection mode позволяет выполнять операции. Например, вы не можете выделять элементы, если режим выделения — QAbstractItemView::NoSelection.

Класс QAbstractItemView является одним из классов модели/представления и входит в состав фреймворка модели/представления Qt.

Классы представлений, наследующие QAbstractItemView, должны реализовать только свою специфичную для представления функциональность, например, рисование элементов, возврат геометрии элементов, поиск элементов и т. д.

QAbstractItemView предоставляет общие слоты, такие как edit() и setCurrentIndex(). Также предоставляется много защищенных слотов, включая dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged() и currentChanged().

Корневой элемент возвращается методом rootIndex(), а текущий элемент — методом currentIndex(). Чтобы убедиться, что элемент виден, используйте scrollTo().

Некоторые функции QAbstractItemView связаны со скроллингом, например, setHorizontalScrollMode() и setVerticalScrollMode(). Чтобы установить диапазон полос прокрутки, можно, например, переопределить функцию resizeEvent() представления:

void MyView::resizeEvent(QResizeEvent *event) {
    horizontalScrollBar()->setRange(0, realWidth - width());
    ...
}

Обратите внимание, что диапазон обновляется только после отображения виджета.

Несколько других функций связаны с управлением выделением; например, setSelectionMode() и setSelectionBehavior(). Этот класс предоставляет модель выделения по умолчанию для работы (selectionModel()), но её можно заменить, используя setSelectionModel() с экземпляром QItemSelectionModel.

Для полного управления отображением и редактированием элементов можно указать делегата с помощью setItemDelegate().

QAbstractItemView предоставляет множество защищенных функций. Некоторые из них связаны с редактированием, например, edit() и commitData(), в то время как другие — обработчики событий клавиатуры и мыши.

Примечание: Если вы наследуете QAbstractItemView и планируете обновлять содержимое области просмотра, используйте viewport->update() вместо update(), так как все операции рисования выполняются в области просмотра.

См. также Классы представлений, Модель/представление, QAbstractItemModel и Пример диаграммы.

Документация типов членов

перечисление QAbstractItemView::CursorAction

Этот перечисление описывает различные способы перемещения между элементами.

Постоянная Значение Описание
QAbstractItemView::MoveUp 0 Переместиться к элементу, расположенному над текущим.
QAbstractItemView::MoveDown 1 Переместиться к элементу, расположенному под текущим.
QAbstractItemView::MoveLeft 2 Переместиться к элементу, расположенному слева от текущего.
QAbstractItemView::MoveRight 3 Переместиться к элементу, расположенному справа от текущего.
QAbstractItemView::MoveHome 4 Переместиться к элементу в верхнем левом углу.
QAbstractItemView::MoveEnd 5 Переместиться к элементу в нижнем правом углу.
QAbstractItemView::MovePageUp 6 Переместиться на одну страницу вверх над текущим элементом.
QAbstractItemView::MovePageDown 7 Переместиться на одну страницу вниз под текущим элементом.
QAbstractItemView::MoveNext 8 Переместиться к элементу после текущего.
QAbstractItemView::MovePrevious 9 Переместиться к элементу перед текущим.

См. также moveCursor().

enum QAbstractItemView::DragDropMode

Описывает различные события перетаскивания и перемещения, на которые может реагировать виджет. По умолчанию виджет не поддерживает перетаскивание и перемещение (NoDragDrop).

Постоянная Значение Описание
QAbstractItemView::NoDragDrop 0 Не поддерживает перетаскивание и перемещение.
QAbstractItemView::DragOnly 1 Виджет поддерживает перетаскивание собственных элементов.
QAbstractItemView::DropOnly 2 Виджет принимает перемещения.
QAbstractItemView::DragDrop 3 Виджет поддерживает как перетаскивание, так и перемещение.
QAbstractItemView::InternalMove 4 Виджет принимает только операции перемещения (не копирования) только из себя.

Обратите внимание, что используемая модель должна обеспечивать поддержку операций перетаскивания и перемещения.

См. также setDragDropMode() и Использование перетаскивания и перемещения с представлениями элементов.

enum QAbstractItemView::DropIndicatorPosition

Это перечисление указывает положение индикатора перемещения относительно индекса в текущем положении мыши:

Постоянная Значение Описание
QAbstractItemView::OnItem 0 Элемент будет перемещён на индекс.
QAbstractItemView::AboveItem 1 Элемент будет перемещён над индексом.
QAbstractItemView::BelowItem 2 Элемент будет перемещён под индексом.
QAbstractItemView::OnViewport 3 Элемент будет перемещён в область области просмотра без элементов. Способ обработки каждого представления элементов, помещённых в область просмотра, зависит от поведения используемой базовой модели.

enum QAbstractItemView::EditTriggerflags QAbstractItemView::EditTriggers

Это перечисление описывает действия, которые инициируют редактирование элемента.

Постоянная Значение Описание
QAbstractItemView::NoEditTriggers 0 Редактирование невозможно.
QAbstractItemView::CurrentChanged 1 Редактирование начинается при изменении текущего элемента.
QAbstractItemView::DoubleClicked 2 Редактирование начинается при двойном щелчке по элементу.
QAbstractItemView::SelectedClicked 4 Редактирование начинается при нажатии на уже выбранный элемент.
QAbstractItemView::EditKeyPressed 8 Редактирование начинается при нажатии клавиши редактирования платформы над элементом.
QAbstractItemView::AnyKeyPressed 16 Редактирование начинается при нажатии любой клавиши над элементом.
QAbstractItemView::AllEditTriggers 31 Редактирование начинается при выполнении всех вышеперечисленных действий.

Тип EditTriggers — это псевдоним для QFlags<EditTrigger>. Он хранит результат побитового ИЛИ значений EditTrigger.

enum QAbstractItemView::ScrollHint

Постоянная Значение Описание
QAbstractItemView::EnsureVisible 0 Прокрутить, чтобы элемент был виден.
QAbstractItemView::PositionAtTop 1 Прокрутить, чтобы позиционировать элемент в верхней части области просмотра.
QAbstractItemView::PositionAtBottom 2 Прокрутить, чтобы позиционировать элемент в нижней части области просмотра.
QAbstractItemView::PositionAtCenter 3 Прокрутить, чтобы позиционировать элемент в центре области просмотра.

enum QAbstractItemView::ScrollMode

Описывает поведение полосы прокрутки. При установке режима прокрутки ScrollPerPixel размер одного шага будет автоматически корректироваться, если он не был явно установлен с помощью setSingleStep(). Автоматическая корректировка может быть восстановлена путём установки размера шага в -1.

Постоянная Значение Описание
QAbstractItemView::ScrollPerItem 0 Представление будет прокручивать содержимое на один элемент за раз.
QAbstractItemView::ScrollPerPixel 1 Представление будет прокручивать содержимое на один пиксель за раз.

enum QAbstractItemView::SelectionBehavior

Постоянная Значение Описание
QAbstractItemView::SelectItems 0 Выбор отдельных элементов.
QAbstractItemView::SelectRows 1 Выбор только строк.
QAbstractItemView::SelectColumns 2 Выбор только столбцов.

enum QAbstractItemView::SelectionMode

Это перечисление указывает, как представление реагирует на пользовательские выделения:

Константа Значение Описание
QAbstractItemView::SingleSelection 1 Когда пользователь выбирает элемент, любой уже выбранный элемент становится невыбранным. Пользователь может отменить выбор выделенного элемента, нажав клавишу Ctrl при щелчке по выделенному элементу.
QAbstractItemView::ContiguousSelection 4 Когда пользователь выбирает элемент обычным способом, выбор очищается, и выбирается новый элемент. Однако, если пользователь нажимает клавишу Shift при щелчке по элементу, все элементы между текущим элементом и нажатым элементом выбираются или убираются с выбора, в зависимости от состояния нажатого элемента.
QAbstractItemView::ExtendedSelection 3 Когда пользователь выбирает элемент обычным способом, выбор очищается, и выбирается новый элемент. Однако, если пользователь нажимает клавишу Ctrl при щелчке по элементу, нажатый элемент переключается в другое состояние, а остальные элементы остаются без изменений. Если пользователь нажимает клавишу Shift при щелчке по элементу, все элементы между текущим элементом и нажатым элементом выбираются или убираются с выбора, в зависимости от состояния нажатого элемента. Несколько элементов можно выбрать, перетаскивая мышь по ним.
QAbstractItemView::MultiSelection 2 Когда пользователь выбирает элемент обычным способом, состояние выбора этого элемента переключается, а другие элементы остаются без изменений. Несколько элементов можно переключить, перетаскивая мышь по ним.
QAbstractItemView::NoSelection 0 Элементы нельзя выбрать.

Наиболее часто используемые режимы — SingleSelection и ExtendedSelection.

enum QAbstractItemView::State

Описывает различные состояния, в которых может находиться виджет. Это обычно интересно только при реализации собственного виджета.

Константа Значение Описание
QAbstractItemView::NoState 0 Это состояние по умолчанию.
QAbstractItemView::DraggingState 1 Пользователь перетаскивает элементы.
QAbstractItemView::DragSelectingState 2 Пользователь выбирает элементы.
QAbstractItemView::EditingState 3 Пользователь редактирует элемент в редакторе виджетов.
QAbstractItemView::ExpandingState 4 Пользователь открывает ветвь элементов.
QAbstractItemView::CollapsingState 5 Пользователь закрывает ветвь элементов.
QAbstractItemView::AnimatingState 6 Виджет выполняет анимацию.

Документация свойств

alternatingRowColors : bool

Это свойство определяет, следует ли рисовать фон с использованием чередующихся цветов.

Если это свойство true, фон элемента будет отрисовываться с использованием QPalette::Base и QPalette::AlternateBase; в противном случае фон будет отрисовываться с использованием цвета QPalette::Base.

По умолчанию это свойство false.

Функции доступа:

bool alternatingRowColors() const
void setAlternatingRowColors(bool enable)

autoScroll : bool

Это свойство определяет, включена ли автопрокрутка при перетаскивании.

Если это свойство установлено в значение true (по умолчанию), QAbstractItemView автоматически прокручивает содержимое представления, если пользователь перетаскивает в пределах 16 пикселей от края области просмотра. Если текущий элемент изменяется, представление автоматически прокручивается, чтобы убедиться, что текущий элемент полностью виден.

Это свойство работает только в том случае, если область просмотра принимает перетаскивание. Автопрокрутка выключается, если это свойство установлено в значение false.

Функции доступа:

bool hasAutoScroll() const
void setAutoScroll(bool enable)

autoScrollMargin : int

Это свойство определяет размер области, при достижении которой срабатывает автопрокрутка.

Это свойство управляет размером области у края области просмотра, которая запускает автопрокрутку. Значение по умолчанию составляет 16 пикселей.

Функции доступа:

int autoScrollMargin() const
void setAutoScrollMargin(int margin)

defaultDropAction : Qt::DropAction

Это свойство определяет действие перетаскивания по умолчанию, которое будет использоваться в QAbstractItemView::drag()

Если свойство не установлено, действие перетаскивания — CopyAction, если поддерживаемые действия включают CopyAction.

Функции доступа:

Qt::DropAction defaultDropAction() const
void setDefaultDropAction(Qt::DropAction dropAction)

См. также showDropIndicator и dragDropOverwriteMode.

dragDropMode : DragDropMode

Это свойство определяет обработку событий перетаскивания и опускания, выполняемых представлением.

Функции доступа:

QAbstractItemView::DragDropMode dragDropMode() const
void setDragDropMode(QAbstractItemView::DragDropMode behavior)

См. также showDropIndicator и dragDropOverwriteMode.

dragDropOverwriteMode : bool

Это свойство определяет поведение представления при перетаскивании и опускании.

Если его значение true, выбранные данные перезапишут существующие данные элемента при опускании, а при перемещении данных элемент очистится. Если его значение false, выбранные данные будут вставлены как новый элемент при опускании данных. При перемещении данных элемент также удаляется.

Значение по умолчанию false, как в подклассах QListView и QTreeView. В подклассе QTableView, с другой стороны, свойство установлено в true.

Примечание: это не предназначено для предотвращения перезаписи элементов. Реализация модели метода flags() должна это делать, не возвращая Qt::ItemIsDropEnabled.

Функции доступа:

bool dragDropOverwriteMode() const
void setDragDropOverwriteMode(bool overwrite)

См. также dragDropMode.

dragEnabled : bool

Это свойство определяет, поддерживает ли представление перетаскивание собственных элементов.

Функции доступа:

bool dragEnabled() const
void setDragEnabled(bool enable)

См. также showDropIndicator, DragDropMode, dragDropOverwriteMode и acceptDrops.

editTriggers : EditTriggers

Это свойство определяет, какие действия инициируют редактирование элемента.

Это свойство представляет собой набор флагов, определенных в EditTrigger, объединённых оператором OR. Представление инициирует редактирование элемента только в том случае, если выполненное действие указано в этом свойстве.

Функции доступа:

QAbstractItemView::EditTriggers editTriggers() const
void setEditTriggers(QAbstractItemView::EditTriggers triggers)

horizontalScrollMode : ScrollMode

режим прокрутки представления по горизонтали

Это свойство управляет тем, как представление прокручивает содержимое по горизонтали. Прокрутка может выполняться по пикселям или по элементам. Значение по умолчанию взято из стиля через стиль подсказку QStyle::SH_ItemView_ScrollMode.

Функции доступа:

QAbstractItemView::ScrollMode horizontalScrollMode() const
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void resetHorizontalScrollMode()

iconSize : QSize

Это свойство определяет размер иконок элементов.

Установка этого свойства, когда представление видно, приведет к повторному выводу элементов.

Функции доступа:

QSize iconSize() const
void setIconSize(const QSize &size)

Сигнал уведомления:

void iconSizeChanged(const QSize &size)

selectionBehavior : SelectionBehavior

Это свойство определяет поведение выбора в представлении.

Это свойство определяет, как выполняются выделения: по отдельным элементам, строкам или столбцам.

Функции доступа:

QAbstractItemView::SelectionBehavior selectionBehavior() const
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)

См. также SelectionMode и SelectionBehavior.

selectionMode : SelectionMode

Это свойство определяет режим выбора в представлении.

Это свойство определяет, можно ли выбрать один или несколько элементов, и в случае выбора нескольких элементов, должен ли выбор быть непрерывным диапазоном элементов.

Функции доступа:

QAbstractItemView::SelectionMode selectionMode() const
void setSelectionMode(QAbstractItemView::SelectionMode mode)

См. также SelectionMode и SelectionBehavior.

showDropIndicator : bool

Это свойство указывает, отображается ли индикатор переноса при перетаскивании и падении элементов.

Функции доступа:

bool showDropIndicator() const
void setDropIndicatorShown(bool enable)

См. также dragEnabled, DragDropMode, dragDropOverwriteMode и acceptDrops.

tabKeyNavigation : bool

Это свойство указывает, включена ли навигация по элементам с помощью клавиш Tab и Backtab.

Функции доступа:

bool tabKeyNavigation() const
void setTabKeyNavigation(bool enable)

textElideMode : Qt::TextElideMode

Это свойство определяет положение многоточия "..." в усечённом тексте.

Значение по умолчанию для всех представлений элементов равно Qt::ElideRight.

Функции доступа:

Qt::TextElideMode textElideMode() const
void setTextElideMode(Qt::TextElideMode mode)

verticalScrollMode : ScrollMode

Как представление прокручивает своё содержимое по вертикали

Это свойство управляет прокруткой содержимого по вертикали. Прокрутка может выполняться по пикселям или по элементам. Значение по умолчанию определяется стилем через стиль-подсказку QStyle::SH_ItemView_ScrollMode.

Функции доступа:

QAbstractItemView::ScrollMode verticalScrollMode() const
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
void resetVerticalScrollMode()

Документация по членам-функциям

QAbstractItemView::QAbstractItemView(QWidget *parent = nullptr)

Создаёт абстрактное представление элементов с заданным parent.

[signal] void QAbstractItemView::activated(const QModelIndex &index)

Этот сигнал испускается, когда пользователь активирует элемент, указанный индексом index. Способ активации элементов зависит от платформы; например, при одиночном или двойном щелчке элемента, или при нажатии клавиши Ввод или 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 &current, const QModelIndex &previous)

Этот слот вызывается, когда новый элемент становится текущим элементом. Предыдущий текущий элемент задаётся индексом previous, а новый — индексом current.

Если вы хотите узнать об изменениях элементов, обратитесь к сигналу dataChanged().

[virtual protected slot] void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())

Этот слот вызывается, когда элементы с заданными roles изменяются в модели. Изменённые элементы находятся от topLeft до bottomRight включительно. Если изменяется только один элемент, topLeft == bottomRight.

roles, которые были изменены, могут быть пустым контейнером (что означает, что всё изменилось), или непустым контейнером с подмножеством ролей, которые были изменены.

Примечание: Qt::ToolTipRole не обрабатывается dataChanged() в представлениях, предоставляемых Qt.

[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)

Этот сигнал испускается, когда двойной щелчок по кнопке мыши. Элемент, на который был осуществлён двойной щелчок, указан индексом index. Сигнал испускается только тогда, когда индекс является допустимым.

См. также clicked() и activated().

[slot] void QAbstractItemView::edit(const QModelIndex &index)

Начинает редактирование элемента, соответствующего заданному index, если он редактируемый.

Обратите внимание, что эта функция не изменяет текущий индекс. Поскольку текущий индекс определяет следующие и предыдущие элементы для редактирования, пользователи могут обнаружить, что навигация с помощью клавиатуры не работает как ожидается. Для обеспечения согласованного поведения навигации, вызовите setCurrentIndex() перед этой функцией с тем же индексом модели.

См. также QModelIndex::flags().

[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)

Эта функция вызывается, когда предоставленный editor был уничтожен.

См. также closeEditor().

[signal] void QAbstractItemView::entered(const QModelIndex &index)

Этот сигнал испускается, когда указатель мыши входит в элемент, заданный индексом index. Для работы этой функции необходимо включить отслеживание перемещения мыши.

См. также viewportEntered(), activated(), clicked(), doubleClicked() и pressed().

[signal] void QAbstractItemView::pressed(const QModelIndex &index)

Этот сигнал испускается, когда нажата кнопка мыши. Элемент, на котором была нажата кнопка мыши, указан индексом index. Сигнал испускается только тогда, когда индекс является допустимым.

Используйте функцию QGuiApplication::mouseButtons() для получения состояния кнопок мыши.

См. также activated(), clicked(), doubleClicked() и entered().

[virtual slot] void QAbstractItemView::reset()

Сбрасывает внутреннее состояние представления.

Предупреждение: Эта функция сбросит открытые редакторы, позиции полосы прокрутки, выделения и т. д. Существующие изменения не будут сохранены. Если вы хотите сохранить свои изменения при сбросе представления, вы можете переопределить эту функцию, сохранить свои изменения и затем вызвать реализацию суперкласса.

[virtual protected slot] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)

Этот слот вызывается, когда строки собираются удалить. Удаляемые строки находятся под заданным parent с start до end включительно.

См. также rowsInserted().

[virtual protected slot] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)

Этот слот вызывается, когда строки вставляются. Новые строки находятся под заданным parent с start до end включительно. Реализация базового класса вызывает fetchMore() в модели для проверки наличия дополнительных данных.

См. также rowsAboutToBeRemoved().

[slot] void QAbstractItemView::scrollToBottom()

Прокручивает представление вниз до самого низа.

См. также scrollTo() и scrollToTop().

[slot] void QAbstractItemView::scrollToTop()

Прокручивает представление до верха.

См. также scrollTo() и scrollToBottom().

[virtual slot] void QAbstractItemView::selectAll()

Выделяет все элементы в представлении. Эта функция будет использовать поведение выделения, установленное в представлении.

См. также setSelection(), selectedIndexes() и clearSelection().

[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Этот слот вызывается при изменении выделения. Предыдущее выделение (которое может быть пустым) задается deselected, а новое — selected.

См. также setSelection().

[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)

Устанавливает текущий элемент в элемент по индексу index.

Если режим текущего выделения не NoSelection, элемент также будет выделен. Обратите внимание, что эта функция также обновляет начальную позицию для всех новых выделений, которые пользователь производит.

Чтобы установить элемент в качестве текущего без его выделения, вызовите

selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);

См. также currentIndex(), currentChanged() и selectionMode.

[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)

Устанавливает корневой элемент в элемент по заданному index.

См. также rootIndex().

[slot] void QAbstractItemView::update(const QModelIndex &index)

Обновляет область, занимаемую данным index.

[virtual protected slot] void QAbstractItemView::updateGeometries()

Обновляет геометрию дочерних виджетов представления.

[signal] void QAbstractItemView::viewportEntered()

Этот сигнал испускается, когда указатель мыши входит в область просмотра. Для работы этой функции необходимо включить отслеживание мыши.

См. также entered().

[virtual] QAbstractItemView::~QAbstractItemView()

Уничтожает представление.

void QAbstractItemView::closePersistentEditor(const QModelIndex &index)

Закрывает постоянный редактор для элемента по заданному index.

См. также openPersistentEditor() и isPersistentEditorOpen().

QModelIndex QAbstractItemView::currentIndex() const

Возвращает индекс модели текущего элемента.

См. также setCurrentIndex().

[protected] QPoint QAbstractItemView::dirtyRegionOffset() const

Возвращает смещение грязных областей в представлении.

Если вы используете scrollDirtyRegion() и реализуете paintEvent() в подклассе QAbstractItemView, вы должны перевести область, задаваемую событием рисования, на смещение, возвращаемое этой функцией.

См. также scrollDirtyRegion() и setDirtyRegion().

[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)

Переопределяет: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).

Эта функция вызывается с данным event, когда операция перетаскивания входит в виджет. Если перетаскивание происходит над допустимой зоной отпускания (например, над элементом, принимающим отпускания), событие принимается; в противном случае оно игнорируется.

См. также dropEvent() и startDrag().

[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)

Переопределяет: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).

Эта функция вызывается, когда элемент, который перетаскивается, покидает представление. Событие event описывает состояние операции перетаскивания и отпускания.

[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)

Переопределяет: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).

Эта функция непрерывно вызывается с данным event во время операции перетаскивания и отпускания над виджетом. Она может вызвать прокрутку представления, если, например, пользователь перетаскивает выделение к правому или нижнему краю представления. В этом случае событие будет принято; в противном случае оно будет проигнорировано.

См. также dropEvent() и startDrag().

[override virtual protected] void QAbstractItemView::dropEvent(QDropEvent *event)

Переопределяет: QAbstractScrollArea::dropEvent(QDropEvent *event).

Эта функция вызывается с данным event, когда происходит событие отпускания над виджетом. Если модель принимает позицию события отпускания, событие отпускания принимается; в противном случае оно игнорируется.

См. также startDrag().

[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const

Возвращает позицию индикатора отпускания по отношению к ближайшему элементу.

[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)

Начинает редактирование элемента по индексу index, создавая редактор при необходимости, и возвращает true если состояние представления State теперь EditingState; в противном случае возвращает false. Действие, вызвавшее процесс редактирования, описывается trigger, а связанное событие задается event.

Редактирование можно принудительно выполнить, указав trigger как QAbstractItemView::AllEditTriggers.

См. также closeEditor().

[override virtual protected] bool QAbstractItemView::event(QEvent *event)

Переопределяет: QAbstractScrollArea::event(QEvent *event).

[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)

Переопределяет: QObject::eventFilter(QObject *watched, QEvent *event).

[protected] void QAbstractItemView::executeDelayedItemsLayout()

Выполняет запланированные макеты элементов без ожидания начала обработки событий.

См. также scheduleDelayedItemsLayout().

[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)

Переопределяет: QWidget::focusInEvent(QFocusEvent *event).

Этот метод вызывается с заданным событием event, когда виджет получает фокус. По умолчанию событие игнорируется.

См. также setFocus() и focusOutEvent().

[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)

Переопределяет: QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)

Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).

Этот метод вызывается с заданным событием event, когда виджет теряет фокус. По умолчанию событие игнорируется.

См. также clearFocus() и focusInEvent().

[pure virtual protected] int QAbstractItemView::horizontalOffset() const

Возвращает горизонтальный сдвиг представления.

В базовом классе это чистая виртуальная функция.

См. также verticalOffset().

[pure virtual] QModelIndex QAbstractItemView::indexAt(const QPoint &point) const

Возвращает индекс модели элемента в координатах области просмотра point.

В базовом классе это чистая виртуальная функция.

См. также visualRect().

QWidget *QAbstractItemView::indexWidget(const QModelIndex &index) const

Возвращает виджет для элемента с заданным индексом index.

См. также setIndexWidget().

[virtual protected, since 6.0] void QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const

Инициализирует структуру option палитрой, шрифтом, состоянием, выравниванием и другими параметрами представления.

Примечание: Реализации этого метода должны проверять версию полученной структуры, заполнять все члены, с которыми знакома реализация, и устанавливать значение члена версии на поддерживаемую реализацией перед возвратом.

Этот метод был введен в Qt 6.0.

[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)

Переопределяет: QWidget::inputMethodEvent(QInputMethodEvent *event).

[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const

Переопределяет: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const

Возвращает true если элемент, на который ссылается заданный индекс index, скрыт в представлении, в противном случае возвращает false.

Скрытие — функция, специфичная для представления. Например, в TableView столбец может быть помечен как скрытый, или строка в TreeView.

В базовом классе это чистая виртуальная функция.

[since 5.10] bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const

Возвращает значение, указывающее, открыт ли постоянный редактор для элемента с индексом index.

Этот метод был введен в Qt 5.10.

См. также openPersistentEditor() и closePersistentEditor().

QAbstractItemDelegate *QAbstractItemView::itemDelegate() const

Возвращает делегат элементов, используемый этим представлением и моделью. Это либо делегат, установленный с помощью setItemDelegate(), либо по умолчанию.

См. также setItemDelegate().

QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const

Возвращает делегат элементов, используемый этим представлением и моделью для данного столбца column. Вы можете вызвать itemDelegate(), чтобы получить указатель на текущий делегат для данного индекса.

См. также setItemDelegateForColumn(), itemDelegateForRow(), и itemDelegate().

[virtual, since 6.0] QAbstractItemDelegate *QAbstractItemView::itemDelegateForIndex(const QModelIndex &index) const

Возвращает делегат элементов, используемый этим представлением и моделью для данного индекса index.

Этот метод был введен в Qt 6.0.

См. также setItemDelegate(), setItemDelegateForRow(), и setItemDelegateForColumn().

QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const

Возвращает делегат элементов, используемый этим представлением и моделью для данной строки row, или nullptr если делегат не был назначен. Вы можете вызвать itemDelegate(), чтобы получить указатель на текущий делегат для данного индекса.

См. также setItemDelegateForRow(), itemDelegateForColumn(), и setItemDelegate().

[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)

Переопределяет: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).

Этот метод вызывается с заданным событием event, когда событие нажатия клавиши отправляется в виджет. Базовая реализация обрабатывает основные перемещения курсора (например, Вверх, Вниз, Влево, Вправо, Домой, PageUp и PageDown); сигнал activated() генерируется, если текущий индекс допустим и нажата клавиша активации (например, Enter или Возврат, в зависимости от платформы). В этом методе инициируется редактирование при нажатии клавиши, например, если нажата F2.

См. также edit(), moveCursor(), keyboardSearch(), и tabKeyNavigation.

[virtual] void QAbstractItemView::keyboardSearch(const QString &search)

Перемещает и выбирает элемент, наилучшим образом соответствующий строке search. Если элемент не найден, ничего не происходит.

В базовой реализации поиск сбрасывается, если search пуста или интервал времени с момента последнего поиска превысил QApplication::keyboardInputInterval().

QAbstractItemModel *QAbstractItemView::model() const

Возвращает модель, которую представляет это представление.

См. также setModel().

[override virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)

Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).

Этот метод вызывается с заданным событием event при двойном щелчке кнопкой мыши внутри виджета. Если двойной щелчок выполнен по допустимому элементу, генерируется сигнал doubleClicked() и вызывается edit() для элемента.

[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)

Переопределяет: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).

Этот метод вызывается с указанным событием event при отправке события перемещения мыши в виджет. Если выполняется выбор и новые элементы перемещаются над выбором, выбор расширяется; если выполняется перетаскивание, оно продолжается.

[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)

Переопределяет: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).

Этот метод вызывается с заданным событием event, когда нажата кнопка мыши, а курсор находится внутри виджета. Если нажат допустимый элемент, он становится текущим элементом. Этот метод испускает сигнал pressed().

[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)

Переопределяет: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).

Этот метод вызывается с заданным событием event при отпускании кнопки мыши после события нажатия мыши на виджете. Если пользователь нажимает мышь внутри вашего виджета, а затем перемещает мышь в другое место, прежде чем отпустить кнопку мыши, ваш виджет получает событие отпускания. Метод испускает сигнал clicked() в случае, если элемент был нажат.

[pure virtual protected] QModelIndex QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

Возвращает объект QModelIndex, указывающий на следующий объект в представлении, на основе заданного cursorAction и модификаторов клавиатуры, указанных в modifiers.

В базовом классе это чисто виртуальный метод.

void QAbstractItemView::openPersistentEditor(const QModelIndex &index)

Открывает постоянный редактор для элемента по заданному index. Если редактор не существует, делегат создаст новый редактор.

См. также closePersistentEditor() и isPersistentEditorOpen().

[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)

Переопределяет: QAbstractScrollArea::resizeEvent(QResizeEvent *event).

Этот метод вызывается с указанным событием event при отправке события изменения размера виджету.

См. также QWidget::resizeEvent().

QModelIndex QAbstractItemView::rootIndex() const

Возвращает индекс модели корневого элемента модели. Корневой элемент является родительским элементом для элементов верхнего уровня представления. Корень может быть недействительным.

См. также setRootIndex().

[protected] void QAbstractItemView::scheduleDelayedItemsLayout()

Планирует размещение элементов в представлении, которое будет выполнено при запуске обработки событий.

Даже если scheduleDelayedItemsLayout() вызывается несколько раз до обработки событий, представление выполнит размещение только один раз.

См. также executeDelayedItemsLayout().

[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)

Подготавливает представление к прокрутке на (dx, dy) пикселей, перемещая области изменений в противоположном направлении. Вам нужно вызывать эту функцию только в том случае, если вы реализуете прокручиваемый область просмотра в вашем подклассе представления.

Если вы реализуете scrollContentsBy() в подклассе QAbstractItemView, вызовите эту функцию перед вызовом QWidget::scroll() на области просмотра. В качестве альтернативы, просто вызовите update().

См. также scrollContentsBy(), dirtyRegionOffset() и setDirtyRegion().

[pure virtual] void QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)

Прокручивает представление, если это необходимо, чтобы убедиться, что элемент по index виден. Представление попытается расположить элемент в соответствии с заданным hint.

В базовом классе это чисто виртуальный метод.

[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const

Эта вспомогательная функция возвращает список всех выделенных и нескрываемых индексов элементов в представлении. Список не содержит дубликатов и не отсортирован.

См. также QItemSelectionModel::selectedIndexes().

[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const

Возвращает SelectionFlags, которые должны использоваться при обновлении выбора для включения указанного index. event — это событие пользовательского ввода, такое как событие мыши или клавиатуры.

Переопределите этот метод, чтобы определить своё поведение при выборе.

См. также setSelection().

QItemSelectionModel *QAbstractItemView::selectionModel() const

Возвращает текущую модель выделения.

См. также setSelectionModel() и selectedIndexes().

[protected] void QAbstractItemView::setDirtyRegion(const QRegion &region)

Помечает заданную region как грязную и планирует её обновление. Вам нужно вызывать эту функцию только в том случае, если вы реализуете собственный подкласс представления.

См. также scrollDirtyRegion() и dirtyRegionOffset().

void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)

Устанавливает указанный widget для элемента по заданному index, передавая виджету владение.

Если index недействителен (например, если вы передаёте индекс корневого элемента), эта функция ничего не сделает.

Свойство autoFillBackground заданного widget должно быть установлено в значение true, иначе фон виджета будет прозрачным, показывая как данные модели, так и элемент по заданному index.

Если виджет A элемента index заменяется виджетом B, виджет A будет удалён. Например, в приведённом ниже фрагменте кода объект QLineEdit будет удалён.

setIndexWidget(index, new QLineEdit);
...
setIndexWidget(index, new QTextEdit);

Этот метод следует использовать только для отображения статического содержимого в видимой области, соответствующей элементу данных. Если вы хотите отображать пользовательское динамическое содержимое или реализовывать пользовательский виджет редактора, наследуйте от QStyledItemDelegate вместо этого.

См. также indexWidget() и Классы Делегатов.

void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)

Устанавливает делегат элемента для этого представления и его модели в delegate. Это полезно, если вы хотите иметь полный контроль над редактированием и отображением элементов.

Любой существующий делегат будет удалён, но не удалён. QAbstractItemView не принимает владение над delegate.

Предупреждение: Не следует использовать один и тот же экземпляр делегата между представлениями. Это может привести к некорректному или неинтуитивному поведению при редактировании, так как каждое представление, связанное с данным делегатом, может получить сигнал closeEditor() и попытаться получить доступ, изменить или закрыть редактор, который уже был закрыт.

См. также itemDelegate().

void QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)

Устанавливает указанный делегат элемента, используемый этим представлением и моделью для заданного столбца column. Все элементы в column будут отображаться и управляться delegate вместо использования делегата по умолчанию (т.е. itemDelegate()).

Любой существующий делегат столбца для column будет удалён, но не удалён. QAbstractItemView не принимает владение над delegate.

Примечание: Если делегат был назначен как для строки, так и для столбца, делегат строки будет иметь приоритет и управлять пересекающимся индексом ячейки.

Предупреждение: Не следует использовать один и тот же экземпляр делегата для нескольких представлений. Это может привести к неправильному или неинтуитивному поведению редактирования, так как каждое представление, связанное с данным делегатом, может получить сигнал closeEditor() и попытаться получить доступ к, изменить или закрыть редактор, который уже был закрыт.

См. также itemDelegateForColumn(), setItemDelegateForRow() и itemDelegate().

void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)

Устанавливает указанный делегат элементов delegate, используемый этим представлением и моделью для заданной строки row. Все элементы в строке row будут отображаться и управляться delegate вместо использования стандартного делегата (т. е., itemDelegate()).

Любой существующий делегат строки для row будет удален, но не удалён. QAbstractItemView не принимает владение над delegate.

Примечание: Если делегат назначен как для строки, так и для столбца, делегат строки (т. е., этот делегат) будет иметь приоритет и управлять пересекающимся индексом ячейки.

Предупреждение: Не следует использовать один и тот же экземпляр делегата для нескольких представлений. Это может привести к неправильному или неинтуитивному поведению редактирования, так как каждое представление, связанное с данным делегатом, может получить сигнал closeEditor() и попытаться получить доступ к, изменить или закрыть редактор, который уже был закрыт.

См. также 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().

[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)

Переопределяет: QAbstractScrollArea::viewportEvent(QEvent *event).

Эта функция используется для обработки всплывающих подсказок и режима «Что это?», если заданное event является QEvent::ToolTip или QEvent::WhatsThis. Все остальные события передаются в обработчик viewportEvent() базового класса.

Возвращает true , если event был распознан и обработан; в противном случае возвращает false.

[override virtual protected, since 5.2] QSize QAbstractItemView::viewportSizeHint() const

Переопределяет: QAbstractScrollArea::viewportSizeHint() const.

Эта функция была добавлена в Qt 5.2.

[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const

Возвращает прямоугольник на области просмотра, занимаемый элементом в index.

Если ваш элемент отображается в нескольких областях, visualRect должен возвращать первичную область, содержащую 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-6.0/qabstractitemview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API