このページでは

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 は、QAbstractItemView クラスによって定義されたインターフェースを実装しており、QAbstractItemModel クラスを継承したモデルから提供されるデータを表示することができます。

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

外観

テーブルには、verticalHeader() 関数を使用して取得できる垂直方向のヘッダーと、horizontalHeader() 関数を通じて利用可能な水平方向のヘッダーがあります。 テーブルの各行の高さは、rowHeight() を使用して取得できます。同様に、列の幅はcolumnWidth() を使用して取得できます。これらはいずれもプレーンウィジェットであるため、それぞれのhide() 関数を使用して非表示にすることができます。各ヘッダーは、highlightSections およびsectionsClickable プロパティがtrue に設定された状態で構成されています。

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

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

氏名・住所・数量一覧表デフォルトでは、テーブルのセルは利用可能なスペースいっぱいに拡張されることはありません。

最後のヘッダーセクションを伸縮させることで、セルが利用可能なスペースいっぱいに広がるようにすることができます。horizontalHeader() またはverticalHeader() を使用して該当するヘッダーにアクセスし、そのヘッダーのstretchLastSection プロパティを設定してください。

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

座標系

特殊な形式のテーブルでは、行および列のインデックスとウィジェットの座標を相互に変換できると便利です。rowAt() 関数は、指定された行のビュー内での y 座標を返します。行インデックスを使用すると、rowViewportPosition() によって対応する y 座標を取得できます。columnAt() およびcolumnViewportPosition() 関数は、x 座標と列インデックス間の同等の変換操作を行います。

「 QTableWidget 」、「View Classes」、「QAbstractItemModel 」、「QAbstractItemView 」、および「Table Model Example」も参照してください 。

プロパティのドキュメント

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 の設定に従って挿入されます。

Access 関数:

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

contents座標系において、指定された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) を再実装します。

modifiers が提供する情報を使用して、指定されたcursorAction に従ってカーソルを移動します。

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

contents座標系における指定された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 が 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()も参照してください 。

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

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

指定されたcolumn およびorder の値に基づいてモデルをソートします。

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

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 がビューポート上で占める矩形を返します。インデックスがビュー内で非表示になっている場合は、nullのQRect を返します。

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

QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const を再実装します。

指定された `selection` 内の項目のビューポートから矩形を返します。

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

© 2026 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.