Класс QTableView
Класс QTableView предоставляет реализацию представления таблицы по умолчанию модель/вид. Подробнее...
| Заголовок: | #include <QTableView> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractItemView |
| Наследует: |
Свойства
|
|
Открытые функции
| QTableView(QWidget *parent = nullptr) | |
| virtual | ~QTableView() |
| void | clearSpans() |
| int | columnAt(int x) const |
| int | columnSpan(int row, int column) const |
| int | columnViewportPosition(int column) const |
| int | columnWidth(int column) const |
| Qt::PenStyle | gridStyle() const |
| QHeaderView * | horizontalHeader() const |
| bool | isColumnHidden(int column) const |
| bool | isCornerButtonEnabled() const |
| bool | isRowHidden(int row) const |
| bool | isSortingEnabled() const |
| int | rowAt(int y) const |
| int | rowHeight(int row) const |
| int | rowSpan(int row, int column) const |
| int | rowViewportPosition(int row) const |
| void | setColumnHidden(int column, bool hide) |
| void | setColumnWidth(int column, int width) |
| void | setCornerButtonEnabled(bool enable) |
| void | setGridStyle(Qt::PenStyle style) |
| void | setHorizontalHeader(QHeaderView *header) |
| void | setRowHeight(int row, int height) |
| void | setRowHidden(int row, bool hide) |
| void | setSortingEnabled(bool enable) |
| void | setSpan(int row, int column, int rowSpanCount, int columnSpanCount) |
| void | setVerticalHeader(QHeaderView *header) |
| void | setWordWrap(bool on) |
| bool | showGrid() const |
| QHeaderView * | verticalHeader() const |
| bool | wordWrap() const |
Переопределенные открытые функции
| virtual QModelIndex | indexAt(const QPoint &pos) const override |
| virtual void | scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override |
| virtual void | setModel(QAbstractItemModel *model) override |
| virtual void | setRootIndex(const QModelIndex &index) override |
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override |
| virtual QRect | visualRect(const QModelIndex &index) const override |
Открытые слоты
| void | hideColumn(int column) |
| void | hideRow(int row) |
| void | resizeColumnToContents(int column) |
| void | resizeColumnsToContents() |
| void | resizeRowToContents(int row) |
| void | resizeRowsToContents() |
| void | selectColumn(int column) |
| void | selectRow(int row) |
| void | setShowGrid(bool show) |
| void | showColumn(int column) |
| void | showRow(int row) |
| void | sortByColumn(int column, Qt::SortOrder order) |
Переопределенные защищенные функции
| virtual void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override |
| virtual int | horizontalOffset() const override |
| virtual void | initViewItemOption(QStyleOptionViewItem *option) const override |
| virtual bool | isIndexHidden(const QModelIndex &index) const override |
| virtual QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | scrollContentsBy(int dx, int dy) override |
| virtual QModelIndexList | selectedIndexes() const override |
| virtual void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override |
| virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) override |
| virtual int | sizeHintForColumn(int column) const override |
| virtual int | sizeHintForRow(int row) const override |
| virtual void | timerEvent(QTimerEvent *event) override |
| virtual void | updateGeometries() override |
| virtual int | verticalOffset() const override |
| virtual QSize | viewportSizeHint() const override |
| virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const override |
Защищенные слоты
| void | columnCountChanged(int oldCount, int newCount) |
| void | columnMoved(int column, int oldIndex, int newIndex) |
| void | columnResized(int column, int oldWidth, int newWidth) |
| void | rowCountChanged(int oldCount, int newCount) |
| void | rowMoved(int row, int oldIndex, int newIndex) |
| void | rowResized(int row, int oldHeight, int newHeight) |
Подробное описание
Класс QTableView реализует вид представления таблицы, отображающий элементы из модели. Этот класс используется для предоставления стандартных таблиц, которые ранее предоставлялись классом QTable, но с использованием более гибкого подхода, предоставляемого архитектурой Qt model/view.
Класс QTableView является одним из классов модели/представления и входит в фреймворк модели/представления Qt.
Класс QTableView реализует интерфейсы, определённые классом QAbstractItemView, чтобы позволить ему отображать данные, предоставляемые моделями, производными от класса QAbstractItemModel.
Навигация
Вы можете перемещаться по ячейкам таблицы, нажав на ячейку мышкой или клавишами со стрелками. Так как QTableView по умолчанию включает перемещение по табуляции, вы также можете использовать клавиши Tab и Backtab для перемещения между ячейками.
Визуальное отображение
Таблица имеет вертикальную заголовок, которую можно получить, используя функцию verticalHeader(), и горизонтальную заголовок, доступную через функцию horizontalHeader(). Высота каждой строки в таблице может быть найдена с помощью rowHeight; аналогично, ширина столбцов может быть найдена с помощью columnWidth(). Поскольку оба являются обычными виджетами, вы можете скрыть любой из них, используя их функции hide().
Строки и столбцы могут быть скрыты и показаны с помощью hideRow(), hideColumn(), showRow() и showColumn(). Они могут быть выбраны с помощью selectRow() и selectColumn(). Таблица отобразит сетку в зависимости от свойства showGrid.
Элементы, отображаемые в представлении таблицы, как и в других представлениях элементов, отображаются и редактируются с использованием стандартных делегатов. Однако в некоторых задачах иногда бывает полезно иметь возможность вставлять виджеты в таблицу. Виджеты устанавливаются для определённых индексов с помощью функции setIndexWidget(), а затем извлекаются с помощью функции .
| По умолчанию ячейки таблицы не расширяются, чтобы заполнить доступное пространство. Вы можете заставить ячейки заполнить доступное пространство, растянув последний раздел заголовка. Доступ к соответствующему заголовку можно получить с помощью horizontalHeader() или verticalHeader() и установить свойство заголовка stretchLastSection. Чтобы распределить доступное пространство в соответствии с требованиями каждого столбца или строки, вызовите функции представления resizeColumnsToContents() или resizeRowsToContents(). |
Системы координат
Для некоторых специализированных форм таблиц полезно иметь возможность преобразовывать между индексами строк и столбцов и координатами виджетов. Функция rowAt() предоставляет координату y внутри представления для указанной строки; индекс строки можно использовать для получения соответствующей координаты y с помощью rowViewportPosition(). Функции columnAt() и columnViewportPosition() предоставляют эквивалентные операции преобразования между координатами x и индексами столбцов.
См. также QTableWidget, Классы представлений, QAbstractItemModel, QAbstractItemView, Пример графика, Пример Pixelator и Пример модели таблицы.
Документация свойств
cornerButtonEnabled : bool
Это свойство определяет, включена ли кнопка в верхнем левом углу.
Если это свойство true, кнопка в верхнем левом углу представления таблицы включена. Нажатие на эту кнопку выберет все ячейки в представлении таблицы.
По умолчанию это свойство true.
Функции доступа:
| bool | isCornerButtonEnabled() const |
| void | setCornerButtonEnabled(bool enable) |
gridStyle : Qt::PenStyle
Это свойство хранит стиль линии, используемый для рисования сетки.
Это свойство хранит стиль, используемый при рисовании сетки (см. showGrid).
Функции доступа:
| Qt::PenStyle | gridStyle() const |
| void | setGridStyle(Qt::PenStyle style) |
showGrid : bool
Это свойство определяет, отображается ли сетка.
Если это свойство true, сетка рисуется для таблицы; если свойство false, сетка не рисуется. Значение по умолчанию — true.
Функции доступа:
| bool | showGrid() const |
| void | setShowGrid(bool show) |
sortingEnabled : bool
Это свойство определяет, включена ли сортировка.
Если это свойство true, сортировка включена для таблицы. Если это свойство false, сортировка выключена. Значение по умолчанию — false.
Примечание: Установление свойства в true с помощью setSortingEnabled() немедленно вызывает вызов sortByColumn() с текущим разделом и порядком сортировки.
Функции доступа:
| bool | isSortingEnabled() const |
| void | setSortingEnabled(bool enable) |
См. также sortByColumn().
wordWrap : bool
Это свойство хранит политику перевода текста элементов.
Если это свойство true, текст элемента переводится по необходимости в местах разрыва слов; в противном случае он вообще не переводится. По умолчанию это свойство true.
Обратите внимание, что даже при включенном переходе, ячейка не будет расширена для размещения всего текста. Эллипсис будет вставлен в соответствии с текущим textElideMode.
Функции доступа:
| bool | wordWrap() const |
| void | setWordWrap(bool on) |
Документация функций-членов
QTableView::QTableView(QWidget *parent = nullptr)
Создаёт представление таблицы с parent для представления данных.
См. также QAbstractItemModel.
[protected slot] void QTableView::columnCountChanged(int oldCount, int newCount)
Этот слот вызывается всякий раз, когда добавляются или удаляются столбцы. Предыдущее число столбцов задаётся параметром oldCount, а новое — параметром newCount.
[protected slot] void QTableView::columnMoved(int column, int oldIndex, int newIndex)
Этот слот вызывается для изменения индекса указанного столбца column в представлении таблицы. Прежний индекс задаётся параметром oldIndex, а новый — параметром newIndex.
См. также rowMoved().
[protected slot] void QTableView::columnResized(int column, int oldWidth, int newWidth)
Этот слот вызывается для изменения ширины указанного столбца column. Предыдущая ширина задаётся параметром oldWidth, а новая — параметром newWidth.
См. также rowResized().
[slot] void QTableView::hideColumn(int column)
Скрыть указанный столбец column.
См. также showColumn() и hideRow().
[slot] void QTableView::hideRow(int row)
Скрыть указанную строку row.
См. также showRow() и hideColumn().
[slot] void QTableView::resizeColumnToContents(int column)
Изменяет размер указанного столбца column на основе значений размера делегата, используемого для рендеринга каждого элемента в столбце.
Примечание: Будут изменены размеры только видимых столбцов. Переопределите sizeHintForColumn(), чтобы изменить размер скрытых столбцов.
См. также resizeColumnsToContents(), sizeHintForColumn() и QHeaderView::resizeContentsPrecision().
[slot] void QTableView::resizeColumnsToContents()
Изменяет размеры всех столбцов на основе значений размера делегата, используемого для рендеринга каждого элемента в столбцах.
См. также resizeColumnToContents(), sizeHintForColumn() и QHeaderView::resizeContentsPrecision().
[slot] void QTableView::resizeRowToContents(int row)
Изменяет высоту указанной строки row на основе значений размера делегата, используемого для рендеринга каждого элемента в строке.
См. также resizeRowsToContents(), sizeHintForRow() и QHeaderView::resizeContentsPrecision().
[slot] void QTableView::resizeRowsToContents()
Изменяет высоту всех строк на основе значений размера делегата, используемого для рендеринга каждого элемента в строках.
См. также resizeRowToContents(), sizeHintForRow() и QHeaderView::resizeContentsPrecision().
[protected slot] void QTableView::rowCountChanged(int oldCount, int newCount)
Этот слот вызывается всякий раз, когда добавляются или удаляются строки. Предыдущее число строк задаётся параметром oldCount, а новое — параметром newCount.
[protected slot] void QTableView::rowMoved(int row, int oldIndex, int newIndex)
Этот слот вызывается для изменения индекса указанной строки row в представлении таблицы. Прежний индекс задаётся параметром oldIndex, а новый — параметром newIndex.
См. также columnMoved().
[protected slot] void QTableView::rowResized(int row, int oldHeight, int newHeight)
Этот слот вызывается для изменения высоты указанной строки row. Предыдущая высота задаётся параметром oldHeight, а новая — параметром newHeight.
См. также columnResized().
[slot] void QTableView::selectColumn(int column)
Выделяет указанный столбец column в представлении таблицы, если текущий режим выделения и поведение выделения позволяют выделять столбцы.
См. также selectRow().
[slot] void QTableView::selectRow(int row)
Выделяет указанную строку row в представлении таблицы, если текущий режим выделения и поведение выделения позволяют выделять строки.
См. также selectColumn().
[slot] void QTableView::showColumn(int column)
Показать заданный столбец.
См. также hideColumn() и showRow().
[slot] void QTableView::showRow(int row)
Показать заданную строку.
См. также hideRow() и showColumn().
[slot] void QTableView::sortByColumn(int column, Qt::SortOrder order)
Сортирует модель по значениям в заданном столбце и порядке.
column может быть -1, в этом случае индикатор сортировки не будет показан, и модель вернётся к своему естественному, несортированному порядку. Обратите внимание, что не все модели поддерживают это и могут даже аварийно завершить работу в этом случае.
См. также sortingEnabled.
[virtual] QTableView::~QTableView()
Уничтожает представление таблицы.
void QTableView::clearSpans()
Удаляет все интервалы строк и столбцов в представлении таблицы.
См. также setSpan().
int QTableView::columnAt(int x) const
Возвращает столбец, в котором расположена заданная координата x, x, в координатах содержимого.
Примечание: Эта функция возвращает -1, если заданная координата не является действительной (не соответствует столбцу).
См. также rowAt().
int QTableView::columnSpan(int row, int column) const
Возвращает интервал столбцов элемента таблицы в позиции (row, column). По умолчанию равен 1.
См. также setSpan() и rowSpan().
int QTableView::columnViewportPosition(int column) const
Возвращает координату x в координатах содержимого заданного столбца.
int QTableView::columnWidth(int column) const
Возвращает ширину заданного столбца.
См. также setColumnWidth(), resizeColumnToContents() и rowHeight().
[override virtual protected] void QTableView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
Реализует: QAbstractItemView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous).
QHeaderView *QTableView::horizontalHeader() const
Возвращает горизонтальную заголовок представления таблицы.
См. также setHorizontalHeader(), verticalHeader() и QAbstractItemModel::headerData().
[override virtual protected] int QTableView::horizontalOffset() const
Реализует: QAbstractItemView::horizontalOffset() const.
Возвращает горизонтальное смещение элементов в представлении таблицы.
Обратите внимание, что представление таблицы использует позиции секций горизонтального заголовка для определения позиций столбцов в представлении.
См. также verticalOffset().
[override virtual] QModelIndex QTableView::indexAt(const QPoint &pos) const
Реализует: QAbstractItemView::indexAt(const QPoint &point) const.
Возвращает индекс позиции элемента модели, соответствующего элементу таблицы в позиции pos в координатах содержимого.
[override virtual protected] void QTableView::initViewItemOption(QStyleOptionViewItem *option) const
Реализует: QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const.
bool QTableView::isColumnHidden(int column) const
Возвращает true если заданный столбец скрыт; в противном случае возвращает false.
См. также isRowHidden().
[override virtual protected] bool QTableView::isIndexHidden(const QModelIndex &index) const
Реализует: QAbstractItemView::isIndexHidden(const QModelIndex &index) const.
bool QTableView::isRowHidden(int row) const
Возвращает true если заданная строка скрыта; в противном случае возвращает false.
См. также isColumnHidden().
[override virtual protected] QModelIndex QTableView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
Реализует: QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).
Перемещает курсор в соответствии с заданным cursorAction, используя информацию, предоставленную modifiers.
См. также QAbstractItemView::CursorAction.
[override virtual protected] void QTableView::paintEvent(QPaintEvent *event)
Реализует: QAbstractScrollArea::paintEvent(QPaintEvent *event).
Отрисовывает таблицу при получении заданного события рисования event.
int QTableView::rowAt(int y) const
Возвращает строку, в которой расположена заданная координата y, y, в координатах содержимого.
Примечание: Эта функция возвращает -1, если заданная координата не является действительной (не соответствует строке).
См. также columnAt().
int QTableView::rowHeight(int row) const
Возвращает высоту заданной строки.
См. также setRowHeight(), resizeRowToContents() и columnWidth().
int QTableView::rowSpan(int row, int column) const
Возвращает интервал строк элемента таблицы в позиции (row, column). По умолчанию равен 1.
См. также setSpan() и columnSpan().
int QTableView::rowViewportPosition(int row) const
Возвращает координату y в координатах содержимого заданной строки.
[override virtual protected] void QTableView::scrollContentsBy(int dx, int dy)
Реализует: QAbstractScrollArea::scrollContentsBy(int dx, int dy).
Прокручивает содержимое представления таблицы на (dx, dy).
[override virtual] void QTableView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)
Реализует: QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).
Обеспечивает видимость заданного индекса в представлении таблицы, при необходимости прокручивая его.
[override virtual protected] QModelIndexList QTableView::selectedIndexes() const
Реализует: QAbstractItemView::selectedIndexes() const.
[override virtual protected] void QTableView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Реализует: QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).
void QTableView::setColumnHidden(int column, bool hide)
Если hide равно true, заданный столбец будет скрыт; в противном случае он будет показан.
См. также isColumnHidden() и setRowHidden().
void QTableView::setColumnWidth(int column, int width)
Устанавливает ширину заданного столбца column на width.
См. также columnWidth().
void QTableView::setHorizontalHeader(QHeaderView *header)
Устанавливает виджет для горизонтальной заголовка на header.
См. также horizontalHeader() и setVerticalHeader().
[override virtual] void QTableView::setModel(QAbstractItemModel *model)
Переопределяет: QAbstractItemView::setModel(QAbstractItemModel *model).
[override virtual] void QTableView::setRootIndex(const QModelIndex &index)
Переопределяет: QAbstractItemView::setRootIndex(const QModelIndex &index).
void QTableView::setRowHeight(int row, int height)
Устанавливает высоту заданной строки row на height.
См. также rowHeight().
void QTableView::setRowHidden(int row, bool hide)
Если hide имеет значение true, строка row будет скрыта; в противном случае — отображена.
См. также isRowHidden() и setColumnHidden().
[override virtual protected] void QTableView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)
Переопределяет: QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).
Выбирает элементы в заданном прямоугольнике rect в соответствии с указанными флагами выбора flags.
[override virtual] void QTableView::setSelectionModel(QItemSelectionModel *selectionModel)
Переопределяет: QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel).
void QTableView::setSortingEnabled(bool enable)
Если enable имеет значение true, включить сортировку таблицы и немедленно вызвать sortByColumn() с текущим разделом сортировки и порядком.
Примечание: Функция-сеттер для свойства sortingEnabled.
См. также isSortingEnabled().
void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)
Устанавливает область элемента таблицы в (row, column) на количество строк и столбцов, указанное (rowSpanCount, columnSpanCount).
См. также rowSpan() и columnSpan().
void QTableView::setVerticalHeader(QHeaderView *header)
Устанавливает виджет для вертикальной заголовка на header.
См. также verticalHeader() и setHorizontalHeader().
[override virtual protected] int QTableView::sizeHintForColumn(int column) const
Переопределяет: QAbstractItemView::sizeHintForColumn(int column) const.
Возвращает размер подсказки для ширины заданного столбца column или -1, если нет модели.
Если нужно установить ширину заданного столбца на фиксированное значение, вызовите QHeaderView::resizeSection() на горизонтальном заголовке таблицы.
Если вы переопределяете эту функцию в подклассе, обратите внимание, что возвращаемое значение будет использовано при вызове resizeColumnToContents() или QHeaderView::resizeSections(). Если для ширины столбца требуется большее значение, либо горизонтальным заголовком, либо делегатом элемента, будет использоваться большее значение.
См. также QWidget::sizeHint, horizontalHeader() и QHeaderView::resizeContentsPrecision().
[override virtual protected] int QTableView::sizeHintForRow(int row) const
Переопределяет: QAbstractItemView::sizeHintForRow(int row) const.
Возвращает размер подсказки для высоты заданной строки row или -1, если нет модели.
Если нужно установить высоту заданной строки на фиксированное значение, вызовите QHeaderView::resizeSection() на вертикальном заголовке таблицы.
Если вы переопределяете эту функцию в подклассе, обратите внимание, что возвращаемое значение используется только при вызове resizeRowToContents(). В этом случае, если для высоты строки требуется большее значение, либо вертикальным заголовком, либо делегатом элемента, будет использоваться большее значение.
См. также QWidget::sizeHint, verticalHeader() и QHeaderView::resizeContentsPrecision().
[override virtual protected] void QTableView::timerEvent(QTimerEvent *event)
Переопределяет: QAbstractItemView::timerEvent(QTimerEvent *event).
[override virtual protected] void QTableView::updateGeometries()
Переопределяет: QAbstractItemView::updateGeometries().
QHeaderView *QTableView::verticalHeader() const
Возвращает вертикальный заголовок табличного представления.
См. также setVerticalHeader(), horizontalHeader() и QAbstractItemModel::headerData().
[override virtual protected] int QTableView::verticalOffset() const
Переопределяет: QAbstractItemView::verticalOffset() const.
Возвращает вертикальное смещение элементов в представлении таблицы.
Обратите внимание, что представление таблицы использует позиции секций вертикального заголовка для определения позиций строк в представлении.
См. также horizontalOffset().
[override virtual protected] QSize QTableView::viewportSizeHint() const
Переопределяет: QAbstractItemView::viewportSizeHint() const.
[override virtual] QRect QTableView::visualRect(const QModelIndex &index) const
Переопределяет: QAbstractItemView::visualRect(const QModelIndex &index) const.
Возвращает прямоугольник на области просмотра, занимаемый заданным индексом index. Если индекс скрыт в представлении, возвращается пустой прямоугольник QRect.
[override virtual protected] QRegion QTableView::visualRegionForSelection(const QItemSelection &selection) const
Переопределяет: QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.
Возвращает прямоугольник из области просмотра элементов в заданном выборе selection.
Начиная с версии 4.7, возвращаемая область содержит только прямоугольники, пересекающие (или содержащие в себе) область просмотра.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtableview.html