Spec-Zone.ru › Qt 6.0

Класс QTableView

Класс QTableView предоставляет стандартную реализацию представления таблицы на основе модели/представления. Подробнее...

Заголовок: #include <QTableView>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QAbstractItemView
Наследуется от:

QTableWidget

  • Список всех членов, включая наследуемые

Свойства

  • cornerButtonEnabled : bool
  • gridStyle : Qt::PenStyle
  • showGrid : bool
  • sortingEnabled : bool
  • wordWrap : bool

Открытые функции

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 &current, 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 model/view.

Класс QTableView является одним из Классов модели/представления и входит в фреймворк Qt model/view.

QTableView реализует интерфейсы, определенные классом QAbstractItemView, чтобы отображать данные, предоставляемые моделями, производными от класса QAbstractItemModel.

Навигация

Вы можете перемещаться по ячейкам таблицы, щелкая по ячейке мышкой или используя стрелки. Поскольку QTableView по умолчанию включает tabKeyNavigation, вы также можете использовать клавиши 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 в представлении таблицы, если текущий 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.

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 &current, const QModelIndex &previous)

Реализует: QAbstractItemView::currentChanged(const QModelIndex &current, 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.0/qtableview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API