Класс QTableView
Класс QTableView предоставляет реализацию представления таблицы по умолчанию на основе модели/представления. Подробнее...
| Заголовок: | #include <QTableView> |
| 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) |
Переопределённые защищённые функции
| virtual void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override |
| virtual int | horizontalOffset() 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 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 QStyleOptionViewItem | viewOptions() const override |
| virtual 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 и 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 по умолчанию.
Это свойство было введено в Qt 4.3.
Функции доступа:
| 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() с текущим разделом и порядком сортировки.
Это свойство было введено в Qt 4.2.
Функции доступа:
| bool | isSortingEnabled() const |
| void | setSortingEnabled(bool enable) |
См. также sortByColumn().
wordWrap : bool
Это свойство определяет политику перевода слов текста элемента.
Если это свойство true, текст элемента переводится при необходимости на разрывы слов; в противном случае он вообще не переводится. Это свойство true по умолчанию.
Обратите внимание, что даже если перенос слов включен, ячейка не будет расширена, чтобы вместить весь текст. Эллипсис будет вставлен в соответствии с текущим textElideMode.
Это свойство было введено в Qt 4.3.
Функции доступа:
| 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 в представлении таблицы, если текущий SelectionMode и SelectionBehavior позволяют выделять столбцы.
См. также selectRow().
[slot] void QTableView::selectRow(int row)
Выделяет указанную row в представлении таблицы, если текущий SelectionMode и SelectionBehavior позволяют выделять строки.
См. также 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, в этом случае индикатор сортировки не будет отображаться, и модель вернётся к своему естественному, несортированному порядку. Обратите внимание, что не все модели поддерживают это и даже могут аварийно завершиться в этом случае.
Эта функция была добавлена в Qt 4.2.
См. также sortingEnabled.
[virtual] QTableView::~QTableView()
Уничтожает представление таблицы.
void QTableView::clearSpans()
Удаляет все интервалы строк и столбцов в представлении таблицы.
Эта функция была добавлена в Qt 4.4.
См. также setSpan().
int QTableView::columnAt(int x) const
Возвращает столбец, в котором находится заданная координата x, x, в координатах содержимого.
Примечание: Эта функция возвращает -1, если заданная координата недействительна (нет столбца).
См. также rowAt().
int QTableView::columnSpan(int row, int column) const
Возвращает интервал столбца элемента таблицы в позиции (row, column). По умолчанию он равен 1.
Эта функция была добавлена в Qt 4.2.
См. также 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 в координатах содержимого.
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.
Эта функция была добавлена в Qt 4.2.
См. также setSpan() и columnSpan().
int QTableView::rowViewportPosition(int row) const
Возвращает координату y в координатах содержимого заданной строки.
[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)
Устанавливает ширину заданного столбца равной width.
Эта функция была добавлена в Qt 4.1.
См. также 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.
Эта функция была добавлена в Qt 4.1.
См. также 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).
Эта функция была добавлена в Qt 4.2.
См. также 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] QStyleOptionViewItem QTableView::viewOptions() const
Реализует: QAbstractItemView::viewOptions() const.
[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-5.14/qtableview.html