Spec-Zone.ru › Qt 5.15

Класс QAbstractItemView

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

Заголовок: #include <QAbstractItemView>
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 * itemDelegate(const QModelIndex &index) const
QAbstractItemDelegate * itemDelegateForColumn(int column) const
QAbstractItemDelegate * itemDelegateForRow(int row) const
virtual void keyboardSearch(const QString &search)
QAbstractItemModel * model() const
void openPersistentEditor(const QModelIndex &index)
void resetHorizontalScrollMode()
void resetVerticalScrollMode()
QModelIndex rootIndex() const
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) = 0
QAbstractItemView::SelectionBehavior selectionBehavior() const
QAbstractItemView::SelectionMode selectionMode() const
QItemSelectionModel * selectionModel() const
void setAlternatingRowColors(bool enable)
void setAutoScroll(bool enable)
void setAutoScrollMargin(int margin)
void setDefaultDropAction(Qt::DropAction dropAction)
void setDragDropMode(QAbstractItemView::DragDropMode behavior)
void setDragDropOverwriteMode(bool overwrite)
void setDragEnabled(bool enable)
void setDropIndicatorShown(bool enable)
void setEditTriggers(QAbstractItemView::EditTriggers triggers)
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void setIconSize(const QSize &size)
void setIndexWidget(const QModelIndex &index, QWidget *widget)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
void setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
virtual void setModel(QAbstractItemModel *model)
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)
void setSelectionMode(QAbstractItemView::SelectionMode mode)
virtual void setSelectionModel(QItemSelectionModel *selectionModel)
void setTabKeyNavigation(bool enable)
void setTextElideMode(Qt::TextElideMode mode)
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
bool showDropIndicator() const
виртуальный int sizeHintForColumn(int column) const
QSize sizeHintForIndex(const QModelIndex &index) const
виртуальный int sizeHintForRow(int row) const
bool tabKeyNavigation() const
Qt::TextElideMode textElideMode() const
QAbstractItemView::ScrollMode verticalScrollMode() const
виртуальный QRect visualRect(const QModelIndex &index) const = 0

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

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

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

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

Сигналы

void активировано(const QModelIndex &index)
void щелкнуто(const QModelIndex &index)
void дваждыЩелкнуто(const QModelIndex &index)
void введено(const QModelIndex &index)
void измененРазмерИконки(const QSize &size)
void нажато(const QModelIndex &index)
void входВОбластьПредставления()

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

перечисление ДействиеКурсора { ПереместитьВверх, ПереместитьВниз, ПереместитьВлево, ПереместитьВправо, ПереместитьДомой, …, ПереместитьНазад }
перечисление ПозицияИндикатораОпускания { НаЭлементе, ВышеЭлемента, НижеЭлемента, НаОбластиПредставления }
перечисление Состояние { БезСостояния, СостояниеПеретаскивания, СостояниеВыделенияПеретаскиванием, СостояниеРедактирования, СостояниеРасширения, …, СостояниеАнимации }

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

QPoint смещениеОбластиИзменений() const
QAbstractItemView::DropIndicatorPosition позицияИндикатораОпускания() const
виртуальный bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
void выполнитьОтложеннуюРазметкуЭлементов()
виртуальный int горизонтальноеСмещение() const = 0
виртуальный bool isHiddenIndex(const QModelIndex &index) const = 0
виртуальный QModelIndex переместитьКурсор(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0
void планироватьОтложеннуюРазметкуЭлементов()
void прокрутитьОбластьИзменений(int dx, int dy)
виртуальный QModelIndexList выбранныеИндексы() const
виртуальный QItemSelectionModel::SelectionFlags командаВыделения(const QModelIndex &index, const QEvent *event = nullptr) const
void установитьОбластьИзменений(const QRegion &region)
виртуальный void установитьВыделение(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0
void установитьСостояние(QAbstractItemView::State state)
виртуальный void начатьПеретаскивание(Qt::DropActions supportedActions)
QAbstractItemView::State состояние() const
виртуальный int вертикальноеСмещение() const = 0
виртуальный QStyleOptionViewItem параметрыПредставления() const
виртуальный QRegion визуальнаяОбластьДляВыделения(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 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()

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

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

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

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

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

Классы представлений, которые наследуются от 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 Виджет принимает только операции перемещения (не копирования) из самого себя.

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

Это перечисление было введено или изменено в 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 — это typedef для QFlags<EditTrigger>. Он хранит комбинацию значений EditTrigger, объединённую операцией OR.

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 Когда пользователь выбирает элемент, любой уже выбранный элемент становится невыбранным. Пользователь может отменить выбор выделенного элемента, нажав клавишу 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 пикселей.

Это свойство было добавлено в Qt 4.4.

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

int autoScrollMargin() const
void setAutoScrollMargin(int margin)

defaultDropAction : Qt::DropAction

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

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

Это свойство было добавлено в Qt 4.6.

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

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

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

dragDropMode : DragDropMode

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

Это свойство было добавлено в Qt 4.2.

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

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

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

dragDropOverwriteMode : bool

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

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

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

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

Это свойство было добавлено в Qt 4.2.

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

bool dragDropOverwriteMode() const
void setDragDropOverwriteMode(bool overwrite)

См. также dragDropMode.

dragEnabled : bool

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

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

bool dragEnabled() const
void setDragEnabled(bool enable)

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

editTriggers : EditTriggers

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

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

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

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

horizontalScrollMode : ScrollMode

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

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

Это свойство было добавлено в Qt 4.2.

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

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

iconSize : QSize

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

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

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

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

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

void iconSizeChanged(const QSize &size)

selectionBehavior : SelectionBehavior

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

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

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

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

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

selectionMode : SelectionMode

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

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

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

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

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

showDropIndicator : bool

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

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

bool showDropIndicator() const
void setDropIndicatorShown(bool enable)

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

tabKeyNavigation : bool

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

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

bool tabKeyNavigation() const
void setTabKeyNavigation(bool enable)

textElideMode : Qt::TextElideMode

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

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

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

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

verticalScrollMode : ScrollMode

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

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

Это свойство было добавлено в Qt 4.2.

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

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

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

QAbstractItemView::QAbstractItemView(QWidget *parent = nullptr)

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

void QAbstractItemView::activated(const QModelIndex &index)

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

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

void QAbstractItemView::clearSelection()

Снимает выделение со всех выделенных элементов. Текущий индекс не изменится.

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

void QAbstractItemView::clicked(const QModelIndex &index)

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

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

void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)

Закрывает заданный editor и освобождает его. hint используется для указания, как представление должно реагировать на завершение операции редактирования. Например, подсказка может указать, что следующий элемент в представлении должен быть открыт для редактирования.

См. также edit() и commitData().

void QAbstractItemView::commitData(QWidget *editor)

Сохраняет данные из editor в модель.

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

void QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

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

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

void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>())

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

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

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

void QAbstractItemView::doubleClicked(const QModelIndex &index)

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

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

void QAbstractItemView::edit(const QModelIndex &index)

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

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

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

void QAbstractItemView::editorDestroyed(QObject *editor)

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

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

void QAbstractItemView::entered(const QModelIndex &index)

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

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

void QAbstractItemView::pressed(const QModelIndex &index)

Этот сигнал излучается при нажатии кнопки мыши. Элемент, на котором была нажата кнопка мыши, задается параметром 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()

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

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

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

[slot] void QAbstractItemView::scrollToTop()

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

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

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

[virtual slot] void QAbstractItemView::selectAll()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[signal] void QAbstractItemView::viewportEntered()

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

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

[virtual] QAbstractItemView::~QAbstractItemView()

Удаляет представление.

void QAbstractItemView::closePersistentEditor(const QModelIndex &index)

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

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

QModelIndex QAbstractItemView::currentIndex() const

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

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

[protected] QPoint QAbstractItemView::dirtyRegionOffset() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действие, вызвавшее процесс редактирования, описывается параметром trigger, а связанное событие задаётся параметром event.

Редактирование можно принудительно вызвать, задав параметр 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.

Данная функция была добавлена в Qt 4.1.

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

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

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

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

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

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

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

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

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

bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const

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

Данная функция была добавлена в Qt 5.10.

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

QAbstractItemDelegate *QAbstractItemView::itemDelegate() const

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

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

QAbstractItemDelegate *QAbstractItemView::itemDelegate(const QModelIndex &index) const

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

QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const

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

Данная функция была добавлена в Qt 4.2.

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

QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const

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

Данная функция была добавлена в Qt 4.2.

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

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

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

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

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

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

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

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

QAbstractItemModel *QAbstractItemView::model() const

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

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

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

Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(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 как неактуальную и планирует её обновление. Вам нужно вызвать эту функцию только в том случае, если вы реализуете свой собственный подкласс представления.

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

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

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

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

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

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

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

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

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

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

См. также indexWidget() и Классы-делегаты.

void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[virtual] void QAbstractItemView::setModel(QAbstractItemModel *model)

Устанавливает model для представления.

Эта функция создаст и установит новую модель выделения, заменив любую модель, которая ранее была установлена с помощью setSelectionModel(). Однако старая модель выделения не будет удалена, поскольку она может быть совмещена между несколькими представлениями. Рекомендуется удалить старую модель выделения, если она больше не требуется. Это делается с помощью следующего кода:

QItemSelectionModel *m = view->selectionModel();
view->setModel(new model);
delete m;

Если у старой модели и старой модели выделения нет родителей или если их родители — долгоживущие объекты, может быть предпочтительнее вызвать их функции deleteLater() для явного удаления.

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

См. также model(), selectionModel(), и setSelectionModel().

[pure virtual protected] void QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)

Применяет флаги выделения flags к элементам в прямоугольнике или соприкасающимся с ним, rect.

При реализации собственного представления элементов, setSelection должен вызвать selectionModel()->select(selection, flags), где selection — либо пустой QModelIndex, либо QItemSelection, содержащий все элементы, расположенные в rect.

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

[virtual] void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)

Устанавливает текущую модель выделения на заданную selectionModel.

Обратите внимание, что если вы вызываете setModel() после этой функции, заданная selectionModel будет заменена созданной представлением.

Примечание: Приложению необходимо удалить старую модель выделения, если она больше не требуется; т.е., если она не используется другими представлениями. Это произойдёт автоматически при удалении родительского объекта. Однако, если у него нет родителя, или родитель — долгоживущий объект, может быть предпочтительнее вызвать его функцию deleteLater() для явного удаления.

См. также selectionModel(), setModel() и clearSelection().

[protected] void QAbstractItemView::setState(QAbstractItemView::State state)

Устанавливает состояние представления элементов на заданное state.

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

[virtual] int QAbstractItemView::sizeHintForColumn(int column) const

Возвращает ширину размера подсказки для указанного column или -1, если нет модели.

Эта функция используется в представлениях с горизонтальной заголовком для поиска размера подсказки для секции заголовка на основе содержимого заданного column.

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

QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const

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

См. также sizeHintForRow() и sizeHintForColumn().

[virtual] int QAbstractItemView::sizeHintForRow(int row) const

Возвращает высоту размера подсказки для указанной row или -1, если нет модели.

Возвращаемая высота рассчитывается с использованием размеров подсказок элементов заданной row, т. е. возвращаемое значение — максимальная высота среди элементов. Обратите внимание, что для управления высотой строки необходимо переопределить функцию QAbstractItemDelegate::sizeHint().

Эта функция используется в представлениях с вертикальной заголовком для поиска размера подсказки для секции заголовка на основе содержимого заданной row.

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

[virtual protected] void QAbstractItemView::startDrag(Qt::DropActions supportedActions)

Запускает перетаскивание, вызвав drag->exec() с использованием заданных supportedActions.

[protected] QAbstractItemView::State QAbstractItemView::state() const

Возвращает состояние представления элементов.

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

[override virtual protected] void QAbstractItemView::timerEvent(QTimerEvent *event)

Переопределяет: QObject::timerEvent(QTimerEvent *event).

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

См. также QObject::timerEvent().

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

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

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

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

[virtual protected] QStyleOptionViewItem QAbstractItemView::viewOptions() const

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

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

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

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

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

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

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

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

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

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

Если ваш элемент отображается в нескольких областях, visualRect должен возвращать основную область, которая содержит index, а не полную область, которую index может охватывать, касаться или вызывать отрисовку.

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

См. также indexAt() и visualRegionForSelection().

[pure virtual protected] QRegion QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const

Возвращает область на представлении элементов в заданном selection.

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

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qabstractitemview.html

Spec-Zone.ru

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