Spec-Zone.ru › Qt 6.1

Класс QListView

Класс QListView предоставляет виджет списка или значков для отображения модели. Подробнее...

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

QListWidget и QUndoView

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

Типы публичного доступа

Перечисление Flow { СлеваНаправо, СверхуВниз }
Перечисление LayoutMode { ОдноПроходной, Пакетированный }
Перечисление Movement { Статический, Свободный, Привязанный }
Перечисление ResizeMode { Фиксированный, Автоматический }
Перечисление ViewMode { РежимСписка, РежимЗначков }

Свойства

  • batchSize : int
  • flow : Flow
  • gridSize : QSize
  • isWrapping : bool
  • itemAlignment : Qt::Alignment
  • layoutMode : LayoutMode
  • modelColumn : int
  • movement : Movement
  • resizeMode : ResizeMode
  • selectionRectVisible : bool
  • spacing : int
  • uniformItemSizes : bool
  • viewMode : ViewMode
  • wordWrap : bool

Публичные функции

QListView(QWidget *parent = nullptr)
virtual ~QListView()
int batchSize() const
void clearPropertyFlags()
QListView::Flow flow() const
QSize gridSize() const
bool isRowHidden(int row) const
bool isSelectionRectVisible() const
bool isWrapping() const
Qt::Alignment itemAlignment() const
QListView::LayoutMode layoutMode() const
int modelColumn() const
QListView::Movement movement() const
QListView::ResizeMode resizeMode() const
void setBatchSize(int batchSize)
void setFlow(QListView::Flow flow)
void setGridSize(const QSize &size)
void setItemAlignment(Qt::Alignment alignment)
void setLayoutMode(QListView::LayoutMode mode)
void setModelColumn(int column)
void setMovement(QListView::Movement movement)
void setResizeMode(QListView::ResizeMode mode)
void setRowHidden(int row, bool hide)
void setSelectionRectVisible(bool show)
void setSpacing(int space)
void setUniformItemSizes(bool enable)
void setViewMode(QListView::ViewMode mode)
void setWordWrap(bool on)
void setWrapping(bool enable)
int spacing() const
bool uniformItemSizes() const
QListView::ViewMode viewMode() const
bool wordWrap() const

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

virtual QModelIndex indexAt(const QPoint &p) const override
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual QRect visualRect(const QModelIndex &index) const override

Сигналы

void indexesMoved(const QModelIndexList &indexes)

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

QRect rectForIndex(const QModelIndex &index) const
void setPositionForIndex(const QPoint &position, const QModelIndex &index)

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

виртуальный void currentChanged(const QModelIndex &current, const QModelIndex &previous) override
виртуальный void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) override
виртуальный void dragLeaveEvent(QDragLeaveEvent *e) override
виртуальный void dragMoveEvent(QDragMoveEvent *e) override
виртуальный void dropEvent(QDropEvent *event) override
виртуальный bool event(QEvent *e) override
виртуальный int horizontalOffset() const override
виртуальный void initViewItemOption(QStyleOptionViewItem *option) const override
виртуальный bool isIndexHidden(const QModelIndex &index) const override
виртуальный void mouseMoveEvent(QMouseEvent *e) override
виртуальный void mouseReleaseEvent(QMouseEvent *e) override
виртуальный QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
виртуальный void paintEvent(QPaintEvent *e) override
виртуальный void resizeEvent(QResizeEvent *e) override
виртуальный void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override
виртуальный void rowsInserted(const QModelIndex &parent, int start, int end) override
виртуальный QModelIndexList selectedIndexes() const override
виртуальный void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override
виртуальный void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override
виртуальный void startDrag(Qt::DropActions supportedActions) override
виртуальный void timerEvent(QTimerEvent *e) override
виртуальный void updateGeometries() override
виртуальный int verticalOffset() const override
виртуальный QSize viewportSizeHint() const override
виртуальный QRegion visualRegionForSelection(const QItemSelection &selection) const override
виртуальный void wheelEvent(QWheelEvent *e) override

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

Класс QListView отображает элементы, хранящиеся в модели, либо как простой список без иерархии, либо как набор значков. Этот класс используется для создания списков и представлений значков, которые ранее предоставлялись классами QListBox и QIconView, но с использованием более гибкого подхода, предоставляемого архитектурой Qt model/view.

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

Данное представление не отображает горизонтальные или вертикальные заголовки; для отображения списка элементов с горизонтальным заголовком используйте QTreeView вместо него.

QListView реализует интерфейсы, определённые классом QAbstractItemView, что позволяет ему отображать данные, предоставляемые моделями, производными от класса QAbstractItemModel.

Элементы в представлении списка могут быть отображены в одном из двух режимов: в режиме ListMode элементы отображаются в виде простого списка; в режиме IconMode представление списка принимает вид представления значков, в котором элементы отображаются со значками, подобно файлам в файловом менеджере. По умолчанию представление списка находится в режиме ListMode. Для изменения режима представления используйте функцию setViewMode(), а для определения текущего режима представления используйте viewMode().

Элементы в этих представлениях выстраиваются в направлении, заданном свойством flow() представления списка. Элементы могут быть закреплены на месте или перемещены в зависимости от состояния movement() представления.

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

Свойства resizeMode() и layoutMode() управляют тем, как и когда выстраиваются элементы. Элементы располагаются с интервалом, заданным свойством spacing(), и могут существовать в предполагаемой сетке размером, заданным свойством gridSize(). Элементы могут отображаться как большие или маленькие значки в зависимости от их размера iconSize().

Повышение производительности

Можно дать представлению подсказки о данных, с которыми оно работает, чтобы повысить производительность при отображении большого количества элементов. Один из подходов, который можно применить для представлений, предназначенных для отображения элементов с одинаковыми размерами, заключается в установке свойства uniformItemSizes в true.

См. также Классы представлений, Пример пазла представлений элементов, QTreeView, QTableView и QListWidget.

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

enum QListView::Flow

Константа Значение Описание
QListView::LeftToRight 0 Элементы выстраиваются в представлении слева направо.
QListView::TopToBottom 1 Элементы выстраиваются в представлении сверху вниз.

enum QListView::LayoutMode

Константа Значение Описание
QListView::SinglePass 0 Элементы выстраиваются все сразу.
QListView::Batched 1 Элементы выстраиваются партиями по batchSize элементов.

См. также batchSize.

enum QListView::Movement

Константа Значение Описание
QListView::Static 0 Элементы не могут быть перемещены пользователем.
QListView::Free 1 Элементы могут быть перемещены пользователем свободно.
QListView::Snap 2 Элементы прикрепляются к заданной сетке при перемещении; см. setGridSize().

enum QListView::ResizeMode

Константа Значение Описание
QListView::Fixed 0 Элементы будут выводиться только при первом отображении представления.
QListView::Adjust 1 Элементы будут выводиться каждый раз при изменении размера представления.

enum QListView::ViewMode

Константа Значение Описание
QListView::ListMode 0 Элементы выстраиваются с помощью потока TopToBottom, размером Small и статичным перемещением
QListView::IconMode 1 Элементы выстраиваются с помощью потока LeftToRight, размером Large и свободным перемещением

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

batchSize : int

Это свойство содержит количество элементов, выложенных в каждой группе, если layoutMode установлено в Batched

Значение по умолчанию — 100.

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

int batchSize() const
void setBatchSize(int batchSize)

flow : Flow

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

Если это свойство LeftToRight, элементы будут выкладываться слева направо. Если свойство isWrapping true, выкладка будет переносить на следующую строку, когда достигнет правой стороны видимой области. Если это свойство TopToBottom, элементы будут выкладываться сверху вниз, переходя на следующую строку, когда достигнут нижней границы.

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

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

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

QListView::Flow flow() const
void setFlow(QListView::Flow flow)

См. также viewMode.

gridSize : QSize

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

Это свойство определяет размер сетки, в которой выкладываются элементы. По умолчанию значение пустое, что означает отсутствие сетки и выкладки в сетку. Установка ненулевого значения включает выкладку в сетку. (При включённой выкладке в сетку свойство spacing игнорируется.)

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

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

QSize gridSize() const
void setGridSize(const QSize &size)

См. также viewMode.

isWrapping : bool

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

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

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

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

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

bool isWrapping() const
void setWrapping(bool enable)

См. также viewMode.

[since 5.12] itemAlignment : Qt::Alignment

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

Это поддерживается только в режиме ListMode с направлением выкладки TopToBottom и включённым переносом. По умолчанию выравнивание равно 0, что означает заполнение элемента всей ячейки.

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

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

Qt::Alignment itemAlignment() const
void setItemAlignment(Qt::Alignment alignment)

layoutMode : LayoutMode

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

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

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

QListView::LayoutMode layoutMode() const
void setLayoutMode(QListView::LayoutMode mode)

См. также viewMode.

modelColumn : int

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

По умолчанию это свойство содержит 0, что означает отображение первого столбца модели.

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

int modelColumn() const
void setModelColumn(int column)

movement : Movement

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

Это свойство определяет, как пользователь может перемещать элементы в представлении. Static означает, что элементы не могут быть перемещены пользователем. Free означает, что пользователь может перетаскивать элементы в любое положение в представлении. Snap означает, что пользователь может перетаскивать элементы, но только в позиции на условной сетке, заданной свойством gridSize.

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

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

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

QListView::Movement movement() const
void setMovement(QListView::Movement movement)

См. также gridSize, resizeMode и viewMode.

resizeMode : ResizeMode

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

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

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

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

QListView::ResizeMode resizeMode() const
void setResizeMode(QListView::ResizeMode mode)

См. также movement, gridSize и viewMode.

selectionRectVisible : bool

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

Если это свойство true , прямоугольник выделения будет виден; в противном случае он будет скрыт.

Примечание: прямоугольник выделения будет виден только если режим выделения позволяет выбирать более одного элемента; то есть он не будет отображать прямоугольник выделения, если режим выделения QAbstractItemView::SingleSelection.

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

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

bool isSelectionRectVisible() const
void setSelectionRectVisible(bool show)

spacing : int

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

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

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

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

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

int spacing() const
void setSpacing(int space)

См. также viewMode.

uniformItemSizes : bool

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

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

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

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

bool uniformItemSizes() const
void setUniformItemSizes(bool enable)

viewMode : ViewMode

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

Это свойство изменит другие не установленные свойства в соответствии с установленным режимом отображения. Свойства QListView, которые уже были установлены, не будут изменены, если не был вызван метод clearPropertyFlags().

Установка режима отображения включит или отключит перетаскивание в зависимости от выбранного способа перемещения. Для ListMode по умолчанию используется режим Static (перетаскивание отключено); для IconMode по умолчанию используется режим Free (перетаскивание включено).

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

QListView::ViewMode viewMode() const
void setViewMode(QListView::ViewMode mode)

См. также isWrapping, spacing, gridSize, flow, movement и resizeMode.

wordWrap : bool

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

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

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

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

bool wordWrap() const
void setWordWrap(bool on)

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

QListView::QListView(QWidget *parent = nullptr)

Создает новый QListView с заданным parent для просмотра модели. Используйте setModel(), чтобы установить модель.

[signal] void QListView::indexesMoved(const QModelIndexList &indexes)

Этот сигнал излучается, когда указанные indexes перемещаются в представлении.

[virtual] QListView::~QListView()

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

void QListView::clearPropertyFlags()

Очищает флаги свойств, специфичные для QListView. См. viewMode.

Свойства, унаследованные от QAbstractItemView, не охватываются флагами свойств. В частности, dragEnabled и acceptsDrops вычисляются QListView при вызове setMovement() или setViewMode().

[override virtual protected] void QListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

Переопределяет: QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous).

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

Переопределяет: QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles).

[override virtual protected] void QListView::dragLeaveEvent(QDragLeaveEvent *e)

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

[override virtual protected] void QListView::dragMoveEvent(QDragMoveEvent *e)

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

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

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

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

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

[override virtual protected] int QListView::horizontalOffset() const

Переопределяет: QAbstractItemView::horizontalOffset() const.

[override virtual] QModelIndex QListView::indexAt(const QPoint &p) const

Переопределяет: QAbstractItemView::indexAt(const QPoint &point) const.

[override virtual protected] void QListView::initViewItemOption(QStyleOptionViewItem *option) const

Переопределяет: QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const.

[override virtual protected] bool QListView::isIndexHidden(const QModelIndex &index) const

Переопределяет: QAbstractItemView::isIndexHidden(const QModelIndex &index) const.

bool QListView::isRowHidden(int row) const

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

[override virtual protected] void QListView::mouseMoveEvent(QMouseEvent *e)

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

[override virtual protected] void QListView::mouseReleaseEvent(QMouseEvent *e)

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

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

Переопределяет: QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).

[override virtual protected] void QListView::paintEvent(QPaintEvent *e)

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

[protected] QRect QListView::rectForIndex(const QModelIndex &index) const

Возвращает прямоугольник элемента в позиции index в модели. Прямоугольник находится в координатах содержимого.

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

[override virtual protected] void QListView::resizeEvent(QResizeEvent *e)

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

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

Реализует: QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end).

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

Реализует: QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end).

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

Реализует: QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).

[override virtual protected] QModelIndexList QListView::selectedIndexes() const

Реализует: QAbstractItemView::selectedIndexes() const.

[override virtual protected] void QListView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Реализует: QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).

[protected] void QListView::setPositionForIndex(const QPoint &position, const QModelIndex &index)

Устанавливает позицию содержимого элемента по индексу index в модели на заданную позицию position. Если режим перемещения списка равен Static или режим просмотра — ListView, эта функция не повлияет.

void QListView::setRowHidden(int row, bool hide)

Если hide равно true, заданная строка row будет скрыта; в противном случае строка row будет отображена.

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

[override virtual protected] void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)

Реализует: QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

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

Реализует: QAbstractItemView::startDrag(Qt::DropActions supportedActions).

[override virtual protected] void QListView::timerEvent(QTimerEvent *e)

Реализует: QAbstractItemView::timerEvent(QTimerEvent *event).

[override virtual protected] void QListView::updateGeometries()

Реализует: QAbstractItemView::updateGeometries().

[override virtual protected] int QListView::verticalOffset() const

Реализует: QAbstractItemView::verticalOffset() const.

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

Реализует: QAbstractItemView::viewportSizeHint() const.

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

[override virtual] QRect QListView::visualRect(const QModelIndex &index) const

Реализует: QAbstractItemView::visualRect(const QModelIndex &index) const.

[override virtual protected] QRegion QListView::visualRegionForSelection(const QItemSelection &selection) const

Реализует: QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.

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

[override virtual protected] void QListView::wheelEvent(QWheelEvent *e)

Реализует: QAbstractScrollArea::wheelEvent(QWheelEvent *e).

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

Spec-Zone.ru

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