Класс QListView
Класс QListView предоставляет вид списка или значков для модели. Подробнее...
| Заголовок: | #include <QListView> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractItemView |
| Наследует: |
Открытые типы
| перечисление | Flow { СлеваНаправо, СверхуВниз } |
| перечисление | LayoutMode { ОдноПроход, Партионный } |
| перечисление | Movement { Статический, Свободный, Привязанный } |
| перечисление | ResizeMode { Фиксированный, Настраиваемый } |
| перечисление | ViewMode { РежимСписок, РежимЗначки } |
Свойства
|
|
Открытые функции
| 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 void | setRootIndex(const QModelIndex &index) 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 ¤t, 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 |
| виртуальный void | scrollContentsBy(int dx, int dy) 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 модель/представление.
Класс QListView является одним из классов модели/представления и входит в состав фреймворка Qt модель/представление.
Это представление не отображает горизонтальные или вертикальные заголовки; для отображения списка элементов с горизонтальным заголовком используйте QTreeView.
QListView реализует интерфейсы, определённые классом QAbstractItemView, чтобы позволить ему отображать данные, предоставляемые моделями, производными от класса QAbstractItemModel.
Элементы в представлении списка могут отображаться в одном из двух режимов: в режиме ListMode элементы отображаются в виде простого списка; в режиме IconMode представление списка принимает форму представления значков, в котором элементы отображаются со значками, как файлы в файловом менеджере. По умолчанию представление списка находится в режиме ListMode. Для изменения режима представления используйте функцию setViewMode(), а для определения текущего режима представления используйте viewMode().
Элементы в этих представлениях выстраиваются в направлении, указанном свойством flow() представления списка. Элементы могут быть зафиксированы на месте или разрешены для перемещения в зависимости от состояния перемещения movement() представления.
Если элементы в модели не могут быть полностью выстроены в направлении потока, они могут быть переносны по границе виджета представления; это зависит от свойства isWrapping(). Это свойство полезно, когда элементы представляются в виде значков.
Свойства resizeMode() и layoutMode() определяют, как и когда элементы выстраиваются. Элементы размещаются согласно их отступу spacing(), и могут существовать в воображаемой сетке заданного размера gridSize(). Элементы могут отображаться в виде крупных или мелких значков в зависимости от их размера значка iconSize().
Улучшение производительности
Можно дать представлению подсказки о данных, которые оно обрабатывает, чтобы улучшить его производительность при отображении большого количества элементов. Один из подходов для представлений, которые предназначены для отображения элементов с одинаковыми размерами, заключается в установке свойства uniformItemSizes в true.
См. также Классы представлений, Пример пазлов для представлений элементов, QTreeView, QTableView и QListWidget.
Документация типов членов
перечисление QListView::Flow
| Константа | Значение | Описание |
|---|---|---|
QListView::LeftToRight |
0 |
Элементы выстраиваются в представлении слева направо. |
QListView::TopToBottom |
1 |
Элементы выстраиваются в представлении сверху вниз. |
перечисление QListView::LayoutMode
| Константа | Значение | Описание |
|---|---|---|
QListView::SinglePass |
0 |
Элементы выстраиваются сразу. |
QListView::Batched |
1 |
Элементы выстраиваются группами по batchSize элементов. |
См. также batchSize.
перечисление QListView::Movement
| Константа | Значение | Описание |
|---|---|---|
QListView::Static |
0 |
Элементы не могут быть перемещены пользователем. |
QListView::Free |
1 |
Элементы могут быть перемещены пользователем. |
QListView::Snap |
2 |
Элементы привязываются к заданной сетке при перемещении; см. setGridSize(). |
перечисление QListView::ResizeMode
| Константа | Значение | Описание |
|---|---|---|
QListView::Fixed |
0 |
Элементы будут выложены только при первом отображении представления. |
QListView::Adjust |
1 |
Элементы будут выкладываться каждый раз при изменении размера представления. |
перечисление QListView::ViewMode
| Константа | Значение | Описание |
|---|---|---|
QListView::ListMode |
0 |
Элементы выкладываются с помощью расположения TopToBottom, с малым размером и статичным движением. |
QListView::IconMode |
1 |
Элементы выкладываются с помощью расположения LeftToRight, с большим размером и свободным движением. |
Документация свойств
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 ¤t, const QModelIndex &previous)
Переопределяет: QAbstractItemView::currentChanged(const QModelIndex ¤t, 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).
END_OF_DOCUMENT_MARKER
[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 protected] void QListView::scrollContentsBy(int dx, int dy)
Переопределяет: QAbstractScrollArea::scrollContentsBy(int dx, int dy).
Прокрутить содержимое представления на dx и dy.
[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. Если режим перемещения списка равен Статический или его режим отображения — ListView, эта функция не повлияет.
[override virtual] void QListView::setRootIndex(const QModelIndex &index)
Переопределяет: QAbstractItemView::setRootIndex(const QModelIndex &index).
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.2/qlistview.html