Класс 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) |
Переопределенные защищенные функции
| виртуальный void | currentChanged(const QModelIndex ¤t, const QModelIndex &previous) override |
| виртуальный int | horizontalOffset() 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 |
| виртуальный QStyleOptionViewItem | viewOptions() 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 и 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)
Показать заданный column.
См. также hideColumn() и showRow().
[slot] void QTableView::showRow(int row)
Показать заданную row.
См. также hideRow() и showColumn().
[slot] void QTableView::sortByColumn(int column, Qt::SortOrder order)
Сортирует модель по значениям в заданном column в заданном order.
Эта функция была добавлена в 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 в координатах содержимого заданного 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 в координатах содержимого.
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.
Эта функция была добавлена в Qt 4.2.
См. также 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.
Эта функция была добавлена в 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.13/qtableview.html