Класс 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 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 |
| виртуальный 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 |
Элементы будут выводиться каждый раз при изменении размера представления. |
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 ¤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).
[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.0/qlistview.html