Класс 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 *event) 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
Это свойство указывает, имеют ли все элементы в списке одинаковый размер.
Это свойство следует устанавливать только в том случае, если гарантируется, что все элементы в представлении имеют одинаковый размер. Это позволяет представлению выполнять некоторые оптимизации для повышения производительности.
По умолчанию это свойство равно 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 *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] 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.15/qlistview.html