QTableView Class
QTableView クラスは、テーブルビューのデフォルトのモデル/ビュー実装を提供します。詳細...
ヘッダー | #include <QTableView> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
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 | 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 ¤t, 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() 関数を使用して非表示にすることができます。各ヘッダーは、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 、ビュー・クラス、QAbstractItemModel 、QAbstractItemView 、テーブル・モデルの例も参照してください 。
プロパティ・ドキュメンテーション
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 です。
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 ¤t, const QModelIndex &previous)
再実装:QAbstractItemView::currentChanged(const QModelIndex ¤t, 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::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 この場合、ソートインジケータは表示されず、モデルはソートされていない自然な順序に戻ります。すべてのモデルがこれをサポートしているわけではなく、この場合クラッシュする可能性があることに注意してください。
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.