Класс QListView
Класс QListView предоставляет вид списка или значков для модели. Подробнее...
| Заголовок: | #include <QListView> |
| 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 QVector<int> &roles = QVector<int>()) override |
| виртуальный void | dragLeaveEvent(QDragLeaveEvent *e) override |
| виртуальный void | dragMoveEvent(QDragMoveEvent *e) override |
| виртуальный void | dropEvent(QDropEvent *e) override |
| виртуальный bool | event(QEvent *e) override |
| виртуальный int | horizontalOffset() 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 |
| виртуальный QStyleOptionViewItem | viewOptions() 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.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| 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.
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.
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| bool | isSelectionRectVisible() const |
| void | setSelectionRectVisible(bool show) |
spacing : int
Это свойство содержит расстояние вокруг элементов в макете.
Это свойство — размер пустого пространства, отступающего вокруг элемента в макете.
Установка этого свойства, когда вид виден, приведет к повторному выводу элементов.
По умолчанию это свойство содержит значение 0.
Функции доступа:
| int | spacing() const |
| void | setSpacing(int space) |
См. также viewMode.
uniformItemSizes : bool
Данное свойство содержит значение, определяющее, имеют ли все элементы в списке одинаковый размер.
Это свойство следует устанавливать в значение true только в том случае, если гарантируется, что все элементы в представлении имеют одинаковый размер. Это позволяет представлению выполнять некоторые оптимизации для повышения производительности.
По умолчанию это свойство равно false.
Это свойство было введено в Qt 4.1.
Функции доступа:
| 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.
Это свойство было введено в Qt 4.2.
Функции доступа:
| bool | wordWrap() const |
| void | setWordWrap(bool on) |
Документация по членам-функциям
QListView::QListView(QWidget *parent = nullptr)
Создаёт новый QListView с заданным parent для отображения модели. Используйте setModel() для задания модели.
[signal] void QListView::indexesMoved(const QModelIndexList &indexes)
Этот сигнал испускается, когда указанные indexes перемещаются в представлении.
Эта функция была введена в Qt 4.2.
[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 QVector<int> &roles = QVector<int>())
Переопределяет: QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<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 *e)
Переопределяет: 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] 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. Если режим перемещения списка равен Статический или режим просмотра равен ListView, эта функция не повлияет на результат.
Эта функция была добавлена в Qt 4.1.
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] QStyleOptionViewItem QListView::viewOptions() const
Переопределяет: QAbstractItemView::viewOptions() const.
[override virtual protected] 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-5.13/qlistview.html