QTableWidget Class
QTableWidget クラスは、デフォルトのモデルを備えた項目ベースのテーブルビューを提供します。詳細...
| ヘッダー: | #include <QTableWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QTableView |
プロパティ
- columnCount : int
- rowCount : int
(since 6.10)supportedDragActions : Qt::DropActions
パブリック関数
| QTableWidget(QWidget *parent = nullptr) | |
| QTableWidget(int rows, int columns, QWidget *parent = nullptr) | |
| virtual | ~QTableWidget() |
| QWidget * | cellWidget(int row, int column) const |
| void | closePersistentEditor(QTableWidgetItem *item) |
| int | column(const QTableWidgetItem *item) const |
| int | columnCount() const |
| int | currentColumn() const |
| QTableWidgetItem * | currentItem() const |
| int | currentRow() const |
| void | editItem(QTableWidgetItem *item) |
| QList<QTableWidgetItem *> | findItems(const QString &text, Qt::MatchFlags flags) const |
| QTableWidgetItem * | horizontalHeaderItem(int column) const |
| QModelIndex | indexFromItem(const QTableWidgetItem *item) const |
| bool | isPersistentEditorOpen(QTableWidgetItem *item) const |
| QTableWidgetItem * | item(int row, int column) const |
| QTableWidgetItem * | itemAt(const QPoint &point) const |
| QTableWidgetItem * | itemAt(int ax, int ay) const |
| QTableWidgetItem * | itemFromIndex(const QModelIndex &index) const |
| const QTableWidgetItem * | itemPrototype() const |
| QList<QTableWidgetItem *> | items(const QMimeData *data) const |
| void | openPersistentEditor(QTableWidgetItem *item) |
| void | removeCellWidget(int row, int column) |
| int | row(const QTableWidgetItem *item) const |
| int | rowCount() const |
| QList<QTableWidgetItem *> | selectedItems() const |
| QList<QTableWidgetSelectionRange> | selectedRanges() const |
| void | setCellWidget(int row, int column, QWidget *widget) |
| void | setColumnCount(int columns) |
| void | setCurrentCell(int row, int column) |
| void | setCurrentCell(int row, int column, QItemSelectionModel::SelectionFlags command) |
| void | setCurrentItem(QTableWidgetItem *item) |
| void | setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command) |
| void | setHorizontalHeaderItem(int column, QTableWidgetItem *item) |
| void | setHorizontalHeaderLabels(const QStringList &labels) |
| void | setItem(int row, int column, QTableWidgetItem *item) |
| void | setItemPrototype(const QTableWidgetItem *item) |
| void | setRangeSelected(const QTableWidgetSelectionRange &range, bool select) |
| void | setRowCount(int rows) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| void | setVerticalHeaderItem(int row, QTableWidgetItem *item) |
| void | setVerticalHeaderLabels(const QStringList &labels) |
| void | sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder) |
| Qt::DropActions | supportedDragActions() const |
| QTableWidgetItem * | takeHorizontalHeaderItem(int column) |
| QTableWidgetItem * | takeItem(int row, int column) |
| QTableWidgetItem * | takeVerticalHeaderItem(int row) |
| QTableWidgetItem * | verticalHeaderItem(int row) const |
| int | visualColumn(int logicalColumn) const |
| QRect | visualItemRect(const QTableWidgetItem *item) const |
| int | visualRow(int logicalRow) const |
パブリックスロット
| void | clear() |
| void | clearContents() |
| void | insertColumn(int column) |
| void | insertRow(int row) |
| void | removeColumn(int column) |
| void | removeRow(int row) |
| void | scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
シグナル
| void | cellActivated(int row, int column) |
| void | cellChanged(int row, int column) |
| void | cellClicked(int row, int column) |
| void | cellDoubleClicked(int row, int column) |
| void | cellEntered(int row, int column) |
| void | cellPressed(int row, int column) |
| void | currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) |
| void | currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous) |
| void | itemActivated(QTableWidgetItem *item) |
| void | itemChanged(QTableWidgetItem *item) |
| void | itemClicked(QTableWidgetItem *item) |
| void | itemDoubleClicked(QTableWidgetItem *item) |
| void | itemEntered(QTableWidgetItem *item) |
| void | itemPressed(QTableWidgetItem *item) |
| void | itemSelectionChanged() |
protected 関数
| virtual bool | dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action) |
| virtual QMimeData * | mimeData(const QList<QTableWidgetItem *> &items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
再実装された保護関数
詳細な説明

テーブルウィジェットは、アプリケーション向けに標準的なテーブル表示機能を提供します。QTableWidget 内の項目は、QTableWidgetItem によって提供されます。
独自のデータモデルを使用するテーブルを作成したい場合は、このクラスではなくQTableView を使用してください。
テーブルウィジェットは、必要な行数と列数を指定して生成できます:
tableWidget = new QTableWidget(12, 3, this);あるいは、サイズを指定せずにテーブルを構築し、後でサイズを変更することも可能です:
tableWidget = new QTableWidget(this);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);項目はテーブルの外側(親ウィジェットを持たない状態で)で作成され、setItem() を使用してテーブルに挿入されます:
QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
(row+1)*(column+1)));
tableWidget->setItem(row, column, newItem);テーブルウィジェットでソートを有効にしたい場合は、アイテムを格納した後に実行してください。そうしないと、ソートによって挿入順序が乱れる可能性があります(詳細については、setItem() を参照してください)。
テーブルには、横方向と縦方向の両方のヘッダーを設定できます。ヘッダーを作成する最も簡単な方法は、setHorizontalHeaderLabels() およびsetVerticalHeaderLabels() 関数に文字列のリストを渡すことです。これにより、テーブルの列および行に対してシンプルなテキストヘッダーが提供されます。 より洗練されたヘッダーは、通常はテーブルの外で構築された既存のテーブル項目から作成できます。たとえば、アイコンと揃えられたテキストを含むテーブル項目を構築し、それを特定の列のヘッダーとして使用することができます:
QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png")));
cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);テーブルの行数はrowCount()で、列数はcolumnCount()で確認できます。テーブルの内容をクリアするには、clear()関数を使用します。
QTableWidgetItem 、QTableView 、および「モデル/ビュープログラミング」も参照してください 。
プロパティのドキュメント
columnCount : int
このプロパティには、テーブルの列数が格納されます
行数および列数が指定されずに作成されたテーブルの場合、デフォルトでは、このプロパティの値は 0 になります。
アクセス関数:
| int | columnCount() const |
| void | setColumnCount(int columns) |
rowCount : int
このプロパティには、テーブルの行数が格納されます
デフォルトでは、行数および列数が指定されずに作成されたテーブルの場合、このプロパティの値は 0 になります。
アクセス関数:
| int | rowCount() const |
| void | setRowCount(int rows) |
[since 6.10] supportedDragActions : Qt::DropActions
このプロパティには、このビューでサポートされているドラッグ操作が格納されます
この列挙型は Qt 6.10 で導入されました。
アクセス関数:
| Qt::DropActions | supportedDragActions() const |
| void | setSupportedDragActions(Qt::DropActions actions) |
Qt::DropActions およびsupportedDropActions()も参照してください 。
メンバ関数のドキュメント
[explicit] QTableWidget::QTableWidget(QWidget *parent = nullptr)
指定されたparent を使用して、新しいテーブルビューを作成します。
QTableWidget::QTableWidget(int rows, int columns, QWidget *parent = nullptr)
指定されたrows およびcolumns 、ならびに指定されたparent を使用して、新しいテーブルビューを作成します。
[virtual noexcept] QTableWidget::~QTableWidget()
QTableWidget を削除します。
[signal] void QTableWidget::cellActivated(int row, int column)
このシグナルは、row およびcolumn で指定されたセルがアクティブになったときに発せられます。
[signal] void QTableWidget::cellChanged(int row, int column)
このシグナルは、row およびcolumn で指定されたセル内の項目のデータが変更されるたびに発生します。
[signal] void QTableWidget::cellClicked(int row, int column)
このシグナルは、テーブル内のセルがクリックされるたびに発生します。指定されたrow およびcolumn は、クリックされたセルを指します。
[signal] void QTableWidget::cellDoubleClicked(int row, int column)
このシグナルは、テーブル内のセルがダブルクリックされるたびに発生します。指定されたrow およびcolumn は、ダブルクリックされたセルです。
[signal] void QTableWidget::cellEntered(int row, int column)
このシグナルは、マウスカーソルがセルに入ったときに発生します。セルは、row およびcolumn によって指定されます。
このシグナルは、mouseTracking がオンになっている場合、またはアイテム内に移動中にマウスボタンが押された場合にのみ発火します。
[signal] void QTableWidget::cellPressed(int row, int column)
このシグナルは、テーブル内のセルが押されたたびに発生します。指定されたrow およびcolumn は、押されたセルを指します。
QWidget *QTableWidget::cellWidget(int row, int column) const
指定されたrow およびcolumn のセルに表示されているウィジェットを返します。
注:テーブルが ウィジェットの所有権を取得します。
関連項目: setCellWidget()
[slot] void QTableWidget::clear()
ビュー内のすべての項目を削除します。これにより、選択項目やヘッダーもすべて削除されます。ヘッダーを削除したくない場合は、QTableWidget::clearContents() を使用してください。テーブルのサイズは変更されません。
[slot] void QTableWidget::clearContents()
ヘッダーに含まれていないすべての項目をビューから削除します。これにより、選択状態もすべて解除されます。表のサイズに変更はありません。
void QTableWidget::closePersistentEditor(QTableWidgetItem *item)
item の永続エディタを閉じます。
openPersistentEditor() およびisPersistentEditorOpen()も参照してください 。
int QTableWidget::column(const QTableWidgetItem *item) const
item に対応する列を返します。
int QTableWidget::columnCount() const
列の数を返します。
注: プロパティ columnCountのゲッター 関数です 。
関連項目: setColumnCount()。
[signal] void QTableWidget::currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
このシグナルは、現在のセルが変更されるたびに発生します。previousRow およびpreviousColumn で指定されるセルは、直前にフォーカスが当たっていたセルであり、currentRow およびcurrentColumn で指定されるセルは、新しい現在のセルです。
int QTableWidget::currentColumn() const
現在の項目の列を返します。
currentRow() およびsetCurrentCell()も参照してください 。
QTableWidgetItem *QTableWidget::currentItem() const
現在の項目を返します。
setCurrentItem()も参照してください 。
[signal] void QTableWidget::currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
このシグナルは、現在の項目が変更されるたびに発火します。previous は、直前にフォーカスされていた項目であり、current は新しい現在の項目です。
int QTableWidget::currentRow() const
現在の項目の行を返します。
currentColumn() およびsetCurrentCell()も参照してください 。
[override virtual protected] void QTableWidget::dropEvent(QDropEvent *event)
QTableView::dropEvent (QDropEvent *event)を再実装します。
[virtual protected] bool QTableWidget::dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action)
指定されたrow およびcolumn において、指定されたaction で終了したドラッグ&ドロップ操作によって渡されたdata を処理します。データとアクションがモデルによって処理可能な場合はtrue を返し、そうでない場合はfalse を返します。
supportedDropActions() およびsupportedDragActionsも参照してください 。
void QTableWidget::editItem(QTableWidgetItem *item)
item が編集可能な場合、その編集を開始します。
[override virtual protected] bool QTableWidget::event(QEvent *e)
QAbstractItemView::event(QEvent *event) を再実装します。
QList<QTableWidgetItem *> QTableWidget::findItems(const QString &text, Qt::MatchFlags flags) const
指定されたflags を使用して、text に一致する項目を検索します。
QTableWidgetItem *QTableWidget::horizontalHeaderItem(int column) const
列の水平ヘッダー項目(column )が設定されている場合はそれを返し、設定されていない場合はnullptr を返します。
setHorizontalHeaderItem()も参照してください 。
QModelIndex QTableWidget::indexFromItem(const QTableWidgetItem *item) const
指定されたitem に関連付けられたQModelIndex を返します。
注: Qt 5.10 以前のバージョンでは 、この関数はconst 以外のitem を引数として受け取っていました。
[slot] void QTableWidget::insertColumn(int column)
column のテーブルに、空の列を挿入します。
[slot] void QTableWidget::insertRow(int row)
row のテーブルに空の行を挿入します。
bool QTableWidget::isPersistentEditorOpen(QTableWidgetItem *item) const
アイテムitem に対して、永続エディタが開かれているかどうかを返します。
openPersistentEditor() およびclosePersistentEditor()も参照してください 。
QTableWidgetItem *QTableWidget::item(int row, int column) const
指定されたrow およびcolumn (設定されている場合)に対応する項目を返します。設定されていない場合は、nullptr を返します。
setItem()も参照してください 。
[signal] void QTableWidget::itemActivated(QTableWidgetItem *item)
この信号は、指定されたitem が有効化されたときに発信されます
QTableWidgetItem *QTableWidget::itemAt(const QPoint &point) const
指定されたpoint にあるアイテムへのポインタを返します。point がテーブルウィジェット内のアイテムで覆われていない場合は、nullptr を返します。
item()も参照してください 。
QTableWidgetItem *QTableWidget::itemAt(int ax, int ay) const
テーブルウィジェットの座標系において、QPoint (ax 、ay )に相当する位置にある項目を返します。指定された点がテーブルウィジェット内の項目で覆われていない場合は、nullptr を返します。
item()も参照してください 。
[signal] void QTableWidget::itemChanged(QTableWidgetItem *item)
この信号は、item のデータが変更されるたびに発信されます。
[signal] void QTableWidget::itemClicked(QTableWidgetItem *item)
このシグナルは、テーブル内の項目がクリックされるたびに発火します。指定されたitem は、クリックされた項目です。
[signal] void QTableWidget::itemDoubleClicked(QTableWidgetItem *item)
このシグナルは、テーブル内の項目がダブルクリックされるたびに発火します。指定されたitem は、ダブルクリックされた項目そのものです。
[signal] void QTableWidget::itemEntered(QTableWidgetItem *item)
このシグナルは、マウスカーソルがアイテムに入ったときに発生します。item は、カーソルが入ったアイテムです。
このシグナルは、mouseTracking がオンになっている場合、またはアイテム内へ移動中にマウスボタンが押された場合にのみ発火します。
QTableWidgetItem *QTableWidget::itemFromIndex(const QModelIndex &index) const
指定されたindex に関連付けられたQTableWidgetItem へのポインタを返します。
[signal] void QTableWidget::itemPressed(QTableWidgetItem *item)
このシグナルは、テーブル内のアイテムが押された際に発火します。指定されたitem は、押されたアイテムそのものです。
const QTableWidgetItem *QTableWidget::itemPrototype() const
テーブルで使用されている項目のプロトタイプを返します。
setItemPrototype()も参照してください 。
[signal] void QTableWidget::itemSelectionChanged()
このシグナルは、選択内容が変更されるたびに発せられます。
selectedItems() およびQTableWidgetItem::isSelected()も参照してください 。
QList<QTableWidgetItem *> QTableWidget::items(const QMimeData *data) const
data オブジェクトに含まれる項目へのポインタのリストを返します。そのオブジェクトが、同じプロセス内のQTreeWidget によって作成されたものでない場合、リストは空になります。
[virtual protected] QMimeData *QTableWidget::mimeData(const QList<QTableWidgetItem *> &items) const
指定されたitems のシリアライズされた記述を含むオブジェクトを返します。項目の記述に使用される形式は、mimeTypes()関数から取得されます。
項目のリストが空の場合、シリアライズされた空のリストではなく、nullptr が返されます。
[virtual protected] QStringList QTableWidget::mimeTypes() const
tablewidget アイテムのリストを記述するために使用できる MIME タイプのリストを返します。
mimeData()も参照してください 。
void QTableWidget::openPersistentEditor(QTableWidgetItem *item)
指定されたitem のエディタを開きます。編集後もエディタは開いたままになります。
closePersistentEditor() およびisPersistentEditorOpen()も参照してください 。
void QTableWidget::removeCellWidget(int row, int column)
row およびcolumn で指定されたセルに設定されているウィジェットを削除します。
[slot] void QTableWidget::removeColumn(int column)
テーブルから「column 」列とそのすべての項目を削除します。
[slot] void QTableWidget::removeRow(int row)
テーブルから行「row 」とそのすべての項目を削除します。
int QTableWidget::row(const QTableWidgetItem *item) const
item に対応する行を返します。
int QTableWidget::rowCount() const
行数を返します。
注: プロパティ rowCountのゲッター 関数です。
関連項目: setRowCount()。
[slot] void QTableWidget::scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)
必要に応じてビューをスクロールし、item が表示されるようにします。hint パラメータは、操作後にitem を配置する位置をより正確に指定します。
QList<QTableWidgetItem *> QTableWidget::selectedItems() const
選択されたすべての項目のリストを返します。
この関数は、選択されたセルの内容へのポインタのリストを返します。空のセルを含む選択範囲全体を取得するには、selectedIndexes() 関数を使用してください。
selectedIndexes()も参照してください 。
QList<QTableWidgetSelectionRange> QTableWidget::selectedRanges() const
選択されたすべての範囲のリストを返します。
「QTableWidgetSelectionRange」も参照してください 。
void QTableWidget::setCellWidget(int row, int column, QWidget *widget)
指定されたwidget を、指定されたrow およびcolumn のセルに表示するように設定し、ウィジェットの所有権をテーブルに渡します。
セルウィジェット A がセルウィジェット B に置き換えられた場合、セルウィジェット A は削除されます。たとえば、以下のコードスニペットでは、QLineEdit オブジェクトが削除されます。
cellWidget()も参照してください 。
void QTableWidget::setColumnCount(int columns)
このテーブルのモデルにおける列数を `columns` に設定します。この値が `columnCount()` より小さい場合、不要な列のデータは破棄されます。
注: プロパティ `columnCount`のセッター 関数です。
関連項目: columnCount() およびsetRowCount()。
void QTableWidget::setCurrentCell(int row, int column)
現在のセルを、位置 (row,column) にあるセルに設定します。
現在の `selection mode` に応じて、セルが選択される場合もあります。
setCurrentItem()、currentRow()、およびcurrentColumn()も参照してください 。
void QTableWidget::setCurrentCell(int row, int column, QItemSelectionModel::SelectionFlags command)
指定されたcommand を使用して、現在のセルを位置(row,column)にあるセルに設定します。
setCurrentItem()、currentRow()、およびcurrentColumn()も参照してください 。
void QTableWidget::setCurrentItem(QTableWidgetItem *item)
現在の項目を「item 」に設定します。
選択モードがNoSelection でない限り、その項目も選択されます。
currentItem() およびsetCurrentCell()も参照してください 。
void QTableWidget::setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command)
指定されたcommand を使用して、現在の項目をitem に設定します。
currentItem() およびsetCurrentCell()も参照してください 。
void QTableWidget::setHorizontalHeaderItem(int column, QTableWidgetItem *item)
列column の水平ヘッダー項目をitem に設定します。必要に応じて、項目が収まるように列数を増やします。以前のヘッダー項目(存在した場合)は削除されます。
horizontalHeaderItem()も参照してください 。
void QTableWidget::setHorizontalHeaderLabels(const QStringList &labels)
labels を使用して、横方向のヘッダーラベルを設定します。
void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)
指定されたrow およびcolumn に対応する項目を、item に設定します。
テーブルがその項目の所有権を取得します。
なお、ソートが有効になっている場合(sortingEnabled を参照)、かつcolumn が現在のソート列である場合は、row はitem によって決定されるソート後の位置に移動されます。
特定の行の複数の項目を設定したい場合(たとえば、ループ内で setItem() を呼び出す場合など)、その前にソートを無効にし、その後で再び有効にすることをお勧めします。これにより、同じ行のすべての項目に対して同じrow 引数を使用できるようになります(つまり、setItem() によって行が移動することはありません)。
item() およびtakeItem()も参照してください 。
void QTableWidget::setItemPrototype(const QTableWidgetItem *item)
テーブルのアイテムプロトタイプを、指定されたitem に設定します。
テーブルウィジェットは、新しいテーブル項目を作成する必要がある場合、項目のプロトタイプの clone 関数を使用します。たとえば、ユーザーが空のセルで編集を行っている場合などです。これは、QTableWidgetItem のサブクラスがあり、QTableWidget がそのサブクラスのインスタンスを確実に作成するようにしたい場合に役立ちます。
テーブルはプロトタイプの所有権を取得します。
itemPrototype()も参照してください 。
void QTableWidget::setRangeSelected(const QTableWidgetSelectionRange &range, bool select)
select の設定に応じて、range の選択状態を切り替えます。
void QTableWidget::setRowCount(int rows)
このテーブルのモデルにおける行数を `rows` に設定します。これが `rowCount()` より少ない場合、不要な行のデータは破棄されます。
注: プロパティ `rowCount`のセッター 関数です。
rowCount() およびsetColumnCount()も参照してください 。
void QTableWidget::setVerticalHeaderItem(int row, QTableWidgetItem *item)
行row の縦方向のヘッダー項目をitem に設定します。
verticalHeaderItem()も参照してください 。
void QTableWidget::setVerticalHeaderLabels(const QStringList &labels)
labels を使用して、縦方向のヘッダーラベルを設定します。
void QTableWidget::sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)
テーブルウィジェット内のすべての行を、column およびorder に基づいて並べ替えます。
[virtual protected] Qt::DropActions QTableWidget::supportedDropActions() const
このビューでサポートされているドロップ操作を返します。
Qt::DropActions 、supportedDragActions 、およびdropMimeData()も参照してください 。
QTableWidgetItem *QTableWidget::takeHorizontalHeaderItem(int column)
column にある水平ヘッダー項目を、削除することなくヘッダーから取り除きます。
QTableWidgetItem *QTableWidget::takeItem(int row, int column)
row およびcolumn にある項目を、テーブルから削除せずに取り除きます。
QTableWidgetItem *QTableWidget::takeVerticalHeaderItem(int row)
row にある縦方向のヘッダー項目を、削除することなくヘッダーから取り除きます。
QTableWidgetItem *QTableWidget::verticalHeaderItem(int row) const
行row に対応する縦方向のヘッダー項目を返します。
setVerticalHeaderItem()も参照してください 。
int QTableWidget::visualColumn(int logicalColumn) const
指定されたlogicalColumn のビジュアル列を返します。
QRect QTableWidget::visualItemRect(const QTableWidgetItem *item) const
item における、そのアイテムがビューポート上で占める矩形を返します。
int QTableWidget::visualRow(int logicalRow) const
指定されたlogicalRow のビジュアル行を返します。
© 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.