Класс 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 | setModel(QAbstractItemModel *model) override |
| virtual void | setRootIndex(const QModelIndex &index) override |
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) 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) |
Переопределённые защищённые функции
| виртуальный void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override |
| виртуальный int | horizontalOffset() const override |
| виртуальный void | initViewItemOption(QStyleOptionViewItem *option) const override |
| виртуальный bool | isIndexHidden(const QModelIndex &index) const override |
| виртуальный QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override |
| виртуальный void | paintEvent(QPaintEvent *event) override |
| виртуальный QModelIndexList | selectedIndexes() const override |
| виртуальный void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override |
| виртуальный void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) override |
| виртуальный int | sizeHintForColumn(int column) const override |
| виртуальный int | sizeHintForRow(int row) const override |
| виртуальный void | timerEvent(QTimerEvent *event) override |
| виртуальный void | updateGeometries() override |
| виртуальный int | verticalOffset() const override |
| виртуальный QSize | viewportSizeHint() 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.
Класс QTableView является одним из классов модели/представления и входит в фреймворк модели/представления Qt.
Класс QTableView реализует интерфейсы, определенные классом QAbstractItemView, чтобы позволить ему отображать данные, предоставляемые моделями, производными от класса QAbstractItemModel.
Навигация
Вы можете перемещаться по ячейкам таблицы, щелкая по ячейке мышью или с помощью клавиш со стрелками. Поскольку QTableView по умолчанию включает навигацию с помощью клавиши Tab, вы также можете нажимать Tab и Backtab для перемещения от ячейки к ячейке.
Визуальный вид
Таблица имеет вертикальную заголовка, которую можно получить с помощью функции verticalHeader(), и горизонтальную заголовка, доступную через функцию horizontalHeader(). Высота каждой строки в таблице может быть найдена с помощью rowHeight(); аналогично, ширина столбцов может быть найдена с помощью columnWidth(). Поскольку оба эти элемента — простые виджеты, вы можете скрыть любой из них, используя их функции hide().
Строки и столбцы могут быть скрыты и показаны с помощью hideRow(), hideColumn(), showRow() и showColumn(). Они могут быть выбраны с помощью selectRow() и selectColumn(). Таблица будет отображать сетку в зависимости от свойства showGrid.
Элементы, отображаемые в представлении таблицы, как и в других представлениях элементов, отрисовываются и редактируются с помощью стандартных делегатов. Однако в некоторых задачах иногда полезно вставлять виджеты в таблицу. Виджеты устанавливаются для определенных индексов с помощью функции setIndexWidget(), а затем извлекаются с помощью функции indexWidget().
| По умолчанию ячейки в таблице не расширяются для заполнения доступного места. Вы можете заставить ячейки заполнять доступное пространство, растягивая последнюю секцию заголовка. Доступ к соответствующему заголовку можно получить с помощью 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)
Отобразить данный column.
См. также hideColumn() и showRow().
[slot] void QTableView::showRow(int row)
Отобразить указанную строку row.
См. также hideRow() и showColumn().
[slot] void QTableView::sortByColumn(int column, Qt::SortOrder order)
Сортирует модель по значениям в заданном столбце column и порядке 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 в координатах содержимого заданного столбца column.
int QTableView::columnWidth(int column) const
Возвращает ширину заданного столбца column.
См. также 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 если заданный столбец column скрыт; в противном случае возвращает 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 если заданная строка row скрыта; в противном случае возвращает 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
Возвращает высоту заданной строки row.
См. также setRowHeight(), resizeRowToContents() и columnWidth().
int QTableView::rowSpan(int row, int column) const
Возвращает интервал строки элемента таблицы в позиции (row, column). По умолчанию значение равно 1.
См. также setSpan() и columnSpan().
int QTableView::rowViewportPosition(int row) const
Возвращает координату y в координатах содержимого заданной строки row.
[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, то заданный столбец column будет скрыт; в противном случае он будет отображен.
См. также 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.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtableview.html