Класс 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 = 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 |
- 60 общедоступных функций унаследовано от QAbstractItemView
- 20 общедоступных функций унаследовано от QAbstractScrollArea
- 14 общедоступных функций унаследовано от QFrame
- 214 общедоступных функций унаследовано от QWidget
- 31 общедоступных функций унаследовано от QObject
- 14 общедоступных функций унаследовано от QPaintDevice
Сигналы
| void | indexesMoved(const QModelIndexList &indexes) |
- 7 сигналов унаследовано от QAbstractItemView
- 3 сигнала унаследовано от QWidget
- 2 сигнала унаследовано от QObject
Статические публичные члены
| const QMetaObject | staticMetaObject |
- 5 статических публичных членов унаследовано от QWidget
- 9 статических публичных членов унаследовано от QObject
Защищённые функции
| QRect | rectForIndex(const QModelIndex &index) const |
| void | setPositionForIndex(const QPoint &position, const QModelIndex &index) |
Переопределённые защищённые функции
| virtual void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override |
| virtual void | dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *e) override |
| virtual void | dragMoveEvent(QDragMoveEvent *e) override |
| virtual void | dropEvent(QDropEvent *e) override |
| virtual bool | event(QEvent *e) override |
| virtual int | horizontalOffset() const override |
| virtual bool | isIndexHidden(const QModelIndex &index) const override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override |
| virtual void | paintEvent(QPaintEvent *e) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override |
| virtual void | rowsInserted(const QModelIndex &parent, int start, int end) override |
| virtual QModelIndexList | selectedIndexes() const override |
| virtual void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override |
| virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override |
| virtual void | startDrag(Qt::DropActions supportedActions) override |
| virtual void | timerEvent(QTimerEvent *e) override |
| virtual void | updateGeometries() override |
| virtual int | verticalOffset() const override |
| virtual QStyleOptionViewItem | viewOptions() const override |
| virtual QSize | viewportSizeHint() const override |
| virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const override |
| virtual void | wheelEvent(QWheelEvent *e) override |
- 38 защищённых функций унаследовано от QAbstractItemView
- 20 защищённых функций унаследовано от QAbstractScrollArea
- 4 защищённых функций унаследовано от QFrame
- 35 защищённых функций унаследовано от QWidget
- 9 защищённых функций унаследовано от QObject
- 1 защищённая функция унаследовано от QPaintDevice
Дополнительные унаследованные члены
- 9 публичных слотов унаследовано от QAbstractItemView
- 19 публичных слотов унаследовано от QWidget
- 1 публичный слот унаследовано от QObject
- 9 защищённых слотов унаследовано от QAbstractItemView
- 1 защищённый слот унаследовано от QWidget
Подробное описание
Класс QListView предоставляет вид списка или значков для модели.
Класс QListView отображает элементы, хранящиеся в модели, как простой список или как коллекцию значков. Этот класс используется для предоставления списков и представлений значков, которые ранее предоставлялись классами QListBox и QIconView, но с использованием более гибкого подхода, предоставляемого архитектурой Qt model/view.
Класс QListView является одним из классов модели/представления и входит в состав фреймворка модели/представления Qt.
Это представление не отображает горизонтальные или вертикальные заголовки; для отображения списка элементов с горизонтальным заголовком используйте QTreeView вместо этого.
QListView реализует интерфейсы, определённые классом QAbstractItemView, что позволяет ему отображать данные, предоставляемые моделями, производными от класса QAbstractItemModel.
Элементы в представлении списка могут отображаться в одном из двух режимов: в режиме ListMode элементы отображаются в виде простого списка; в режиме IconMode представление списка принимает форму представления значков, в котором элементы отображаются со значками, подобно файлам в файловом менеджере. По умолчанию представление списка находится в режиме ListMode. Для изменения режима представления используйте функцию setViewMode(), а для определения текущего режима представления используйте viewMode().
Элементы в этих представлениях располагаются в направлении, заданном свойством flow() представления списка. Элементы могут быть закреплены на месте или перемещены в зависимости от состояния свойства movement() представления.
Если элементы в модели не могут быть полностью отображены в направлении потока, они могут быть переносимы на границу виджета представления; это зависит от свойства isWrapping(). Это свойство полезно, когда элементы представлены в виде представления значков.
Свойства resizeMode() и layoutMode() управляют тем, как и когда элементы выстраиваются. Элементы разнесены в соответствии с их spacing(), и могут существовать в условной сетке заданного размера gridSize(). Элементы могут отображаться как большие или маленькие значки в зависимости от iconSize().
Повышение производительности
Можно дать подсказки представлению о данных, с которыми оно работает, чтобы улучшить производительность при отображении большого количества элементов. Один подход, который можно использовать для представлений, предназначенных для отображения элементов с одинаковыми размерами, — установить свойство uniformItemSizes в значение true.
См. также Классы представлений, Пример виджетов представлений элементов (puzzle), 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.
Это свойство было добавлено в 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(), чтобы установить модель.
[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().
[override virtual protected] void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>())
Переопределено из QAbstractItemView::dataChanged().
[override virtual protected] void QListView::dragLeaveEvent(QDragLeaveEvent *e)
Переопределено из QAbstractItemView::dragLeaveEvent().
[override virtual protected] void QListView::dragMoveEvent(QDragMoveEvent *e)
Переопределено из QAbstractItemView::dragMoveEvent().
[override virtual protected] void QListView::dropEvent(QDropEvent *e)
Переопределено из QAbstractItemView::dropEvent().
[override virtual protected] bool QListView::event(QEvent *e)
Переопределено из QAbstractItemView::event().
[override virtual protected] int QListView::horizontalOffset() const
Переопределено из QAbstractItemView::horizontalOffset().
[override virtual] QModelIndex QListView::indexAt(const QPoint &p) const
Переопределено из QAbstractItemView::indexAt().
[signal] void QListView::indexesMoved(const QModelIndexList &indexes)
Этот сигнал излучается, когда указанные indexes перемещаются в представлении.
Эта функция была добавлена в Qt 4.2.
[override virtual protected] bool QListView::isIndexHidden(const QModelIndex &index) const
Переопределено из QAbstractItemView::isIndexHidden().
bool QListView::isRowHidden(int row) const
Возвращает true, если строка row скрыта; в противном случае возвращает false.
[override virtual protected] void QListView::mouseMoveEvent(QMouseEvent *e)
Переопределено из QAbstractItemView::mouseMoveEvent().
[override virtual protected] void QListView::mouseReleaseEvent(QMouseEvent *e)
Переопределено из QAbstractItemView::mouseReleaseEvent().
[override virtual protected] QModelIndex QListView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
Переопределено из QAbstractItemView::moveCursor().
[override virtual protected] void QListView::paintEvent(QPaintEvent *e)
Переопределено из QAbstractScrollArea::paintEvent().
[protected] QRect QListView::rectForIndex(const QModelIndex &index) const
Возвращает прямоугольник элемента в позиции index в модели. Прямоугольник находится в координатах содержимого.
См. также visualRect().
[override virtual protected] void QListView::resizeEvent(QResizeEvent *e)
Переопределено из QAbstractItemView::resizeEvent().
[override virtual protected] void QListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Переопределено из QAbstractItemView::rowsAboutToBeRemoved().
[override virtual protected] void QListView::rowsInserted(const QModelIndex &parent, int start, int end)
Переопределено из QAbstractItemView::rowsInserted().
[override virtual] void QListView::scrollTo(const QModelIndex &индекс, QAbstractItemView::ScrollHint сдвиг = EnsureVisible)
Переопределено из QAbstractItemView::scrollTo().
[override virtual protected] QModelIndexList QListView::selectedIndexes() const
Переопределено из QAbstractItemView::selectedIndexes().
[override virtual protected] void QListView::selectionChanged(const QItemSelection &выделенные, const QItemSelection &снятые_с_выделения)
Переопределено из QAbstractItemView::selectionChanged().
[protected] void QListView::setPositionForIndex(const QPoint &позиция, const QModelIndex &индекс)
Устанавливает позицию содержимого элемента с индексом индекс в модели на заданную позицию. Если режим перемещения списка равен Статический или его режим отображения равен ListView, эта функция не повлияет.
Эта функция была добавлена в Qt 4.1.
void QListView::setRowHidden(int строка, bool скрыть)
Если скрыть равно true, заданная строка будет скрыта; в противном случае строка будет отображена.
См. также isRowHidden().
[override virtual protected] void QListView::setSelection(const QRect &прямоугольник, QItemSelectionModel::SelectionFlags команда)
Переопределено из QAbstractItemView::setSelection().
[override virtual protected] void QListView::startDrag(Qt::DropActions поддерживаемыеДействия)
Переопределено из QAbstractItemView::startDrag().
[override virtual protected] void QListView::timerEvent(QTimerEvent *e)
Переопределено из QAbstractItemView::timerEvent().
[override virtual protected] void QListView::updateGeometries()
Переопределено из QAbstractItemView::updateGeometries().
[override virtual protected] int QListView::verticalOffset() const
Переопределено из QAbstractItemView::verticalOffset().
[override virtual protected] QStyleOptionViewItem QListView::viewOptions() const
Переопределено из QAbstractItemView::viewOptions().
[override virtual protected] QSize QListView::viewportSizeHint() const
Переопределено из QAbstractItemView::viewportSizeHint().
Эта функция была добавлена в Qt 5.2.
[override virtual] QRect QListView::visualRect(const QModelIndex &индекс) const
Переопределено из QAbstractItemView::visualRect().
[override virtual protected] QRegion QListView::visualRegionForSelection(const QItemSelection &выбор) const
Переопределено из QAbstractItemView::visualRegionForSelection().
Начиная с 4.7, возвращаемая область содержит только прямоугольники, пересекающиеся (или включенные в) область просмотра.
[override virtual protected] void QListView::wheelEvent(QWheelEvent *e)
Переопределено из QAbstractScrollArea::wheelEvent().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qlistview.html