Класс QListView
Класс QListView предоставляет вид списка или значков на основе модели. Подробнее...
| Заголовок: | #include <QListView> |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractItemView |
| Наследует: |
Открытые типы
| Перечисление | Flow { СлеваНаправо, СверхуВниз } |
| Перечисление | LayoutMode { ОдноПроходной, Пакетированный } |
| Перечисление | Movement { Статический, Свободный, Снап } |
| Перечисление | ResizeMode { Фиксированный, Изменение } |
| Перечисление | ViewMode { РежимСписок, РежимЗначки } |
Свойства
|
|
- 16 свойств унаследовано от QAbstractItemView
- 3 свойства унаследовано от QAbstractScrollArea
- 6 свойств унаследовано от QFrame
- 59 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Общедоступные функции
| QListView(QWidget *parent = Q_NULLPTR) | |
| ~QListView() | |
| int | batchSize() const |
| void | clearPropertyFlags() |
| Flow | flow() const |
| QSize | gridSize() const |
| bool | isRowHidden(int row) const |
| bool | isSelectionRectVisible() const |
| bool | isWrapping() const |
| LayoutMode | layoutMode() const |
| int | modelColumn() const |
| Movement | movement() const |
| ResizeMode | resizeMode() const |
| void | setBatchSize(int batchSize) |
| void | setFlow(Flow flow) |
| void | setGridSize(const QSize &size) |
| void | setLayoutMode(LayoutMode mode) |
| void | setModelColumn(int column) |
| void | setMovement(Movement movement) |
| void | setResizeMode(ResizeMode mode) |
| void | setRowHidden(int row, bool hide) |
| void | setSelectionRectVisible(bool show) |
| void | setSpacing(int space) |
| void | setUniformItemSizes(bool enable) |
| void | setViewMode(ViewMode mode) |
| void | setWordWrap(bool on) |
| void | setWrapping(bool enable) |
| int | spacing() const |
| bool | uniformItemSizes() const |
| ViewMode | viewMode() const |
| bool | wordWrap() const |
Переопределённые общедоступные функции
| virtual QModelIndex | indexAt(const QPoint &p) const |
| virtual void | scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) |
| virtual QRect | visualRect(const QModelIndex &index) const |
- 59 общедоступных функций унаследовано от QAbstractItemView
- 20 общедоступных функций унаследовано от QAbstractScrollArea
- 14 общедоступных функций унаследовано от QFrame
- 214 общедоступных функций унаследовано от QWidget
- 32 общедоступных функций унаследовано от QObject
- 14 общедоступных функций унаследовано от QPaintDevice
Сигналы
| void | indexesMoved(const QModelIndexList &indexes) |
- 7 сигналов унаследовано от QAbstractItemView
- 3 сигналов унаследовано от QWidget
- 2 сигналов унаследовано от QObject
Защищённые функции
| QRect | rectForIndex(const QModelIndex &index) const |
| void | setPositionForIndex(const QPoint &position, const QModelIndex &index) |
Реализованные защищённые функции
| virtual void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) |
| virtual void | dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int> ()) |
| virtual void | dragLeaveEvent(QDragLeaveEvent *e) |
| virtual void | dragMoveEvent(QDragMoveEvent *e) |
| virtual void | dropEvent(QDropEvent *e) |
| virtual bool | event(QEvent *e) |
| virtual int | horizontalOffset() const |
| virtual bool | isIndexHidden(const QModelIndex &index) const |
| virtual void | mouseMoveEvent(QMouseEvent *e) |
| virtual void | mouseReleaseEvent(QMouseEvent *e) |
| virtual QModelIndex | moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) |
| virtual void | paintEvent(QPaintEvent *e) |
| virtual void | resizeEvent(QResizeEvent *e) |
| virtual void | rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) |
| virtual void | rowsInserted(const QModelIndex &parent, int start, int end) |
| virtual QModelIndexList | selectedIndexes() const |
| virtual void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) |
| virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) |
| virtual void | startDrag(Qt::DropActions supportedActions) |
| virtual void | timerEvent(QTimerEvent *e) |
| virtual void | updateGeometries() |
| virtual int | verticalOffset() const |
| virtual QStyleOptionViewItem | viewOptions() const |
| virtual QSize | viewportSizeHint() const |
| virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const |
| virtual void | wheelEvent(QWheelEvent *e) |
- 37 защищённых функций унаследовано от QAbstractItemView
- 20 защищённых функций унаследовано от QAbstractScrollArea
- 4 защищённых функций унаследовано от QFrame
- 35 защищённых функций унаследовано от QWidget
- 9 защищённых функций унаследовано от QObject
- 1 защищённая функция унаследовано от QPaintDevice
Дополнительные унаследованные члены
- 9 публичных слотов унаследовано от QAbstractItemView
- 19 публичных слотов унаследовано от QWidget
- 1 публичный слот унаследовано от QObject
- 5 статических публичных членов унаследовано от QWidget
- 11 статических публичных членов унаследовано от QObject
- 9 защищённых слотов унаследовано от QAbstractItemView
- 1 защищённый слот унаследовано от QWidget
Подробное описание
Класс QListView предоставляет представление списка или значков на основе модели.
Класс 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.
Документация по типам членов
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, с небольшим размером и статичным перемещением. |
QListView::IconMode |
1 |
Элементы выложены с использованием потока LeftToRight, с большим размером и свободным перемещением. |
Документация по свойствам
batchSize : int
Это свойство хранит количество элементов, выложенных в каждой партии, если layoutMode установлено в Batched.
Значение по умолчанию — 100.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| int | batchSize() const |
| void | setBatchSize(int batchSize) |
flow : Flow
Это свойство определяет направление выкладки элементов.
Если это свойство LeftToRight, элементы будут выкладываться слева направо. Если свойство isWrapping равно true, выкладка будет переносить на следующую строку, когда достигнет правой стороны видимой области. Если это свойство TopToBottom, элементы будут выкладываться сверху вниз, переходя на следующую строку, когда достигнут нижней части.
Изменение этого свойства, когда вид виден, заставит элементы быть выложены снова.
По умолчанию это свойство установлено в TopToBottom.
Функции доступа:
| Flow | flow() const |
| void | setFlow(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.
layoutMode : LayoutMode
определяет, должна ли выкладка элементов происходить немедленно или быть отложена.
Это свойство хранит режим выкладки элементов. Когда режим SinglePass (по умолчанию), элементы выкладываются все сразу. Когда режим Batched, элементы выкладываются партиями по batchSize элементов во время обработки событий. Это позволяет мгновенно просматривать и взаимодействовать с видимыми элементами, в то время как остальные выкладываются.
Функции доступа:
| LayoutMode | layoutMode() const |
| void | setLayoutMode(LayoutMode mode) |
См. также viewMode.
modelColumn : int
Это свойство хранит номер столбца в модели, который виден.
По умолчанию это свойство содержит 0, указывая, что будет показан первый столбец модели.
Функции доступа:
| int | modelColumn() const |
| void | setModelColumn(int column) |
movement : Movement
Это свойство определяет, могут ли элементы свободно перемещаться, привязаны к сетке или вообще не могут перемещаться.
Это свойство определяет, как пользователь может перемещать элементы в представлении. Static означает, что элементы не могут быть перемещены пользователем. Free означает, что пользователь может перетаскивать элементы в любое положение в представлении. Snap означает, что пользователь может перетаскивать элементы, но только в позиции на сетке, определяемой свойством gridSize.
Изменение этого свойства, когда вид виден, заставит элементы быть выложены снова.
По умолчанию это свойство установлено в Static.
Функции доступа:
| Movement | movement() const |
| void | setMovement(Movement movement) |
См. также gridSize, resizeMode и viewMode.
resizeMode : ResizeMode
Это свойство определяет, перестраиваются ли элементы при изменении размера представления.
Если это свойство Adjust, элементы перестраиваются при изменении размера представления. Если значение Fixed, элементы не перестраиваются при изменении размера.
По умолчанию это свойство установлено в Fixed.
Функции доступа:
| ResizeMode | resizeMode() const |
| void | setResizeMode(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 (перетаскивание включено).
Функции доступа:
| ViewMode | viewMode() const |
| void | setViewMode(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 = Q_NULLPTR)
Создаёт новый QListView с заданным parent для просмотра модели. Используйте setModel(), чтобы установить модель.
QListView::~QListView()
Уничтожает представление.
void QListView::clearPropertyFlags()
Очищает флаги свойств, специфичных для QListView. См. viewMode.
Свойства, унаследованные от QAbstractItemView, не обрабатываются флагами свойств. В частности, dragEnabled и acceptsDrops вычисляются QListView при вызове setMovement() или setViewMode().
[virtual protected] void QListView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
Переопределено из QAbstractItemView::currentChanged().
[virtual protected] void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int> ())
Переопределено из QAbstractItemView::dataChanged().
[virtual protected] void QListView::dragLeaveEvent(QDragLeaveEvent *e)
Переопределено из QWidget::dragLeaveEvent().
[virtual protected] void QListView::dragMoveEvent(QDragMoveEvent *e)
Переопределено из QWidget::dragMoveEvent().
[virtual protected] void QListView::dropEvent(QDropEvent *e)
Переопределено из QWidget::dropEvent().
[virtual protected] bool QListView::event(QEvent *e)
Переопределено из QObject::event().
[virtual protected] int QListView::horizontalOffset() const
Переопределено из QAbstractItemView::horizontalOffset().
[virtual] QModelIndex QListView::indexAt(const QPoint &p) const
Переопределено из QAbstractItemView::indexAt().
[signal] void QListView::indexesMoved(const QModelIndexList &indexes)
Этот сигнал испускается, когда указанные indexes перемещаются в представлении.
Эта функция была добавлена в Qt 4.2.
[virtual protected] bool QListView::isIndexHidden(const QModelIndex &index) const
Переопределено из QAbstractItemView::isIndexHidden().
bool QListView::isRowHidden(int row) const
Возвращает true, если строка row скрыта; в противном случае возвращает false.
[virtual protected] void QListView::mouseMoveEvent(QMouseEvent *e)
Переопределено из QWidget::mouseMoveEvent().
[virtual protected] void QListView::mouseReleaseEvent(QMouseEvent *e)
Переопределено из QWidget::mouseReleaseEvent().
[virtual protected] QModelIndex QListView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
Переопределено из QAbstractItemView::moveCursor().
[virtual protected] void QListView::paintEvent(QPaintEvent *e)
Переопределено из QWidget::paintEvent().
[protected] QRect QListView::rectForIndex(const QModelIndex &index) const
Возвращает прямоугольник элемента с позицией index в модели. Прямоугольник находится в координатах содержимого.
См. также visualRect().
[virtual protected] void QListView::resizeEvent(QResizeEvent *e)
Переопределено из QWidget::resizeEvent().
[virtual protected] void QListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Переопределено из QAbstractItemView::rowsAboutToBeRemoved().
[virtual protected] void QListView::rowsInserted(const QModelIndex &parent, int start, int end)
Переопределено из QAbstractItemView::rowsInserted().
[virtual] void QListView::scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible)
Переопределено из QAbstractItemView::scrollTo().
[virtual protected] QModelIndexList QListView::selectedIndexes() const
Переопределено из QAbstractItemView::selectedIndexes().
[virtual protected] void QListView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Переопределено из QAbstractItemView::selectionChanged().
[protected] void QListView::setPositionForIndex(const QPoint &position, const QModelIndex &index)
Устанавливает позицию содержимого элемента по индексу index в модели на заданную position. Если режим перемещения списка равен Static или режим отображения — ListView, эта функция не окажет никакого эффекта.
Эта функция была добавлена в Qt 4.1.
void QListView::setRowHidden(int row, bool hide)
Если hide равно true, заданная строка row будет скрыта; в противном случае строка row будет показана.
См. также isRowHidden().
[virtual protected] void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)
Переопределено из QAbstractItemView::setSelection().
[virtual protected] void QListView::startDrag(Qt::DropActions supportedActions)
Переопределено из QAbstractItemView::startDrag().
[virtual protected] void QListView::timerEvent(QTimerEvent *e)
Переопределено из QObject::timerEvent().
[virtual protected] void QListView::updateGeometries()
Переопределено из QAbstractItemView::updateGeometries().
[virtual protected] int QListView::verticalOffset() const
Переопределено из QAbstractItemView::verticalOffset().
[virtual protected] QStyleOptionViewItem QListView::viewOptions() const
Переопределено из QAbstractItemView::viewOptions().
[virtual protected] QSize QListView::viewportSizeHint() const
Переопределено из QAbstractScrollArea::viewportSizeHint().
Эта функция была добавлена в Qt 5.2.
[virtual] QRect QListView::visualRect(const QModelIndex &index) const
Переопределено из QAbstractItemView::visualRect().
[virtual protected] QRegion QListView::visualRegionForSelection(const QItemSelection &selection) const
Переопределено из QAbstractItemView::visualRegionForSelection().
Начиная с 4.7, возвращаемая область содержит только прямоугольники, пересекающие (или включающие) область просмотра.
[virtual protected] void QListView::wheelEvent(QWheelEvent *e)
Переопределено из QWidget::wheelEvent().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qlistview.html