QTableView Class

QTableView クラスは、テーブルビューのデフォルトのモデル/ビュー実装を提供します。詳細...

ヘッダー #include <QTableView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
を継承する: QAbstractItemView
継承元:

QTableWidget

プロパティ

パブリック関数

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 &current, const QModelIndex &previous) override
virtual void dropEvent(QDropEvent *event) 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 のモデル/ビュー・アーキテクチャによって提供されるより柔軟なアプローチを使用します。

QTableView クラスは、モデル/ビュー・クラスの一つであり、Qt のモデル/ビュー・フレームワークの一部です。

QTableView は、QAbstractItemModel クラスから派生したモデルによって提供されたデータを表示できるように、QAbstractItemView クラスによって定義されたインターフェースを実装しています。

テーブルのセルは、マウスでセルをクリックするか、矢印キーを使って移動することができます。QTableView はデフォルトでtabKeyNavigation を有効にしているので、Tab や Backtab を押してセルからセルへ移動することもできます。

視覚的な外観

テーブルには、verticalHeader() 関数を使用して取得できる垂直方向のヘッダーと、horizontalHeader() 関数を使用して取得できる水平方向のヘッダーがあります。表の各行の高さは、rowHeight() で求めることができます。同様に、列の幅は、columnWidth() で求めることができます。どちらもプレーン・ウィジェットなので、hide() 関数を使用して非表示にすることができます。各ヘッダーは、highlightSectionssectionsClickable プロパティがtrue に設定されています。

行と列は、hideRow()、hideColumn()、showRow()、showColumn() で非表示にしたり表示したりできます。これらは、selectRow() およびselectColumn() で選択できます。テーブルは、showGrid プロパティに応じてグリッドを表示します。

テーブル・ビューに表示される項目は、他の項目ビューに表示される項目と同様に、標準のdelegates を使用して表示および編集されます。しかし、いくつかのタスクでは、代わりにテーブルにウィジェットを挿入できると便利な場合があります。ウィジェットはsetIndexWidget() 関数で特定のインデックスに設定され、後でindexWidget() で取得されます。

デフォルトでは、テーブルのセルは使用可能なスペースいっぱいに展開されません。

最後のヘッダー・セクションを伸ばすことで、セルを使用可能なスペースいっぱいにすることができます。horizontalHeader() またはverticalHeader() を使用して関連するヘッダにアクセスし、ヘッダのstretchLastSection プロパティを設定します。

各列または行の必要スペースに応じて利用可能なスペースを分配するには、ビューのresizeColumnsToContents() またはresizeRowsToContents() 関数を呼び出します。

座標系

いくつかの特殊な形式の表では、行と列のインデックスとウィジェットの座標を変換できると便利です。rowAt ()関数は、指定された行のビュー内のy座標を提供します。行インデックスを使用して、rowViewportPosition ()で対応するy座標を取得することができます。columnAt ()とcolumnViewportPosition ()関数は、x座標と列インデックスの間の同等の変換操作を提供します。

QTableWidgetビュー・クラスQAbstractItemModelQAbstractItemViewテーブル・モデルの例も参照してください

プロパティ・ドキュメンテーション

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 です。

注釈 .setSortingEnabled() でこのプロパティを true に設定すると、直ちに、現在の並べ替えセクションと順序でsortByColumn() が呼び出されます。

アクセス関数:

bool isSortingEnabled() const
void setSortingEnabled(bool enable)

sortByColumn()も参照してください

wordWrap : bool

このプロパティは、項目テキストの単語折り返しポリシーを保持する。

このプロパティがtrue の場合、アイテムのテキストは必要に応じて単語区切りで折り返されます。このプロパティはデフォルトではtrue である。

折り返しが有効になっていても、すべてのテキストに合わせてセルが拡大されるわけではないことに注意してください。省略記号は現在のtextElideMode に従って挿入されます。

アクセス関数:

bool wordWrap() const
void setWordWrap(bool on)

メンバ関数ドキュメント

[explicit] QTableView::QTableView(QWidget *parent = nullptr)

parent 、データを表すテーブルビューを構築します。

QAbstractItemModelも参照してください

[virtual noexcept] QTableView::~QTableView()

テーブルビューを破棄する。

void QTableView::clearSpans()

テーブルビューのすべての行と列のスパンを削除します。

setSpan()も参照

int QTableView::columnAt(int x) const

内容座標において、与えられた x 座標x が位置する列を返す。

注意: この関数は、与えられた座標が有効でない(列がない)場合は -1 を返します。

rowAt()も参照

[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()も参照のこと

int QTableView::columnSpan(int row, int column) const

(row,column) にあるテーブル要素の列スパンを返します。デフォルトは 1 です。

setSpan() およびrowSpan()も参照

int QTableView::columnViewportPosition(int column) const

与えられたcolumn のコンテンツ座標における x 座標を返す。

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)。

[override virtual protected] void QTableView::dropEvent(QDropEvent *event)

再実装:QAbstractItemView::dropEvent(QDropEvent *event)。

[slot] void QTableView::hideColumn(int column)

与えられたcolumn を隠す。

showColumn() およびhideRow()も参照のこと

[slot] void QTableView::hideRow(int row)

与えられたrow を隠す。

showRow() およびhideColumn()も参照のこと

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

与えられたcolumn が非表示の場合は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

与えられたrow が非表示の場合は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

[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()も参照 ください。

int QTableView::rowAt(int y) const

内容座標において、与えられた y 座標y が位置する行を返す。

注意: 与えられた座標が有効でない(行がない)場合、この関数は -1 を返します。

columnAt()も参照

[protected slot] void QTableView::rowCountChanged(int oldCount, int newCount)

このスロットは、行が追加または削除されるたびに呼び出される。前の行数はoldCount で指定され、新しい行数はnewCount で指定される。

int QTableView::rowHeight(int row) const

与えられたrow の高さを返す。

setRowHeight()、resizeRowToContents() およびcolumnWidth()も参照

[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()も参照してください

int QTableView::rowSpan(int row, int column) const

(row,column) にあるテーブル要素の行スパンを返します。デフォルトは 1 です。

setSpan() およびcolumnSpan()も参照

int QTableView::rowViewportPosition(int row) const

与えられたrow のコンテンツ座標における 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)。

与えられたindex がテーブルビューに表示されていることを確認し、必要に応じてスクロールします。

[slot] void QTableView::selectColumn(int column)

現在の SelectionMode と SelectionBehavior が列を選択できるようになっている場合、テーブルビューで指定されたcolumn を選択します。

selectRow()も参照してください

[slot] void QTableView::selectRow(int row)

現在の SelectionMode と SelectionBehavior で行を選択できる場合、テーブルビューで指定されたrow を選択します。

selectColumn()も参照してください

[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 が真なら、与えられた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 が真の場合、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 が真の場合、テーブルのソートを有効にし、現在のソートセクションと順序でsortByColumn() を直ちに呼び出す。

注: プロパティsortingEnabled のセッター関数。

isSortingEnabled()も参照してください

void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)

(row,column) の table 要素のスパンを、 (rowSpanCount,columnSpanCount) で指定した行数・列数に設定します。

rowSpan() およびcolumnSpan()も参照

void QTableView::setVerticalHeader(QHeaderView *header)

垂直ヘッダーに使用するウィジェットをheader に設定します。

verticalHeader() およびsetHorizontalHeader()も参照

[slot] void QTableView::showColumn(int column)

与えられたcolumn を表示する。

hideColumn() およびshowRow()も参照のこと

[slot] void QTableView::showRow(int row)

与えられたrow を表示する。

hideRow() およびshowColumn()も参照のこと

[override virtual protected] int QTableView::sizeHintForColumn(int column) const

再インプリメント:QAbstractItemView::sizeHintForColumn(int column) const.

与えられたcolumn の幅のサイズヒントを返すか、モデルがない場合は -1 を返します。

指定したカラムの幅を固定値に設定する必要がある場合は、テーブルの水平ヘッダでQHeaderView::resizeSection() をコールします。

サブクラスでこの関数を再実装する場合は、resizeColumnToContents() またはQHeaderView::resizeSections() が呼び出されたときに返される値が使用されることに注意してください。水平ヘッダまたは項目デリゲートのいずれかがより大きな列幅を要求している場合は、代わりに大きな幅が使用されます。

QWidget::sizeHinthorizontalHeader()、QHeaderView::resizeContentsPrecision()も参照してください

[override virtual protected] int QTableView::sizeHintForRow(int row) const

再実装:QAbstractItemView::sizeHintForRow(int row) const.

与えられたrow の高さのサイズヒントを返すか、モデルがない場合は -1 を返します。

指定した行の高さを固定値に設定する必要がある場合は、テーブルの垂直ヘッダでQHeaderView::resizeSection() をコールします。

この関数をサブクラスで再実装する場合、返す値はresizeRowToContents() が呼び出されたときにのみ使用されることに注意してください。その場合、垂直ヘッダまたは項目デリゲートのいずれかがより大きな行の高さを必要とする場合は、その幅が代わりに使用されます。

QWidget::sizeHintverticalHeader()、QHeaderView::resizeContentsPrecision()も参照してください

[slot] void QTableView::sortByColumn(int column, Qt::SortOrder order)

与えられたcolumnorder の値でモデルをソートします。

column この場合、ソートインジケータは表示されず、モデルはソートされていない自然な順序に戻ります。すべてのモデルがこれをサポートしているわけではなく、この場合クラッシュする可能性があることに注意してください。

sortingEnabledも参照して ください。

[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 が占めるビューポート上の矩形を返します。インデックスがビューに隠れている場合、NULLQRect を返します。

[override virtual protected] QRegion QTableView::visualRegionForSelection(const QItemSelection &selection) const

再実装:QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.

与えられたselection 内のアイテムのビューポートからの矩形を返します。

4.7以降、返される領域は、ビューポートと交差する(またはビューポートに含まれる)矩形のみを含みます。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.