QTableWidget Class

QTableWidgetクラスは、デフォルトモデルを持つアイテムベースのテーブルビューを提供します。詳細...

Header: #include <QTableWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QTableView

プロパティ

パブリック関数

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 setVerticalHeaderItem(int row, QTableWidgetItem *item)
void setVerticalHeaderLabels(const QStringList &labels)
void sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)
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()

保護された関数

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

再実装された保護された関数

virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override

詳細説明

テーブルウィジェットは、アプリケーションに標準的なテーブル表示機能を提供します。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() で、列数は () で確認できる。

QTableWidgetItemQTableView 、およびモデル/ビュー・プログラミング参照してください

プロパティ Documentation

columnCount : int

このプロパティは、テーブルの列数を保持します。

デフォルトでは、行と列のカウントなしで構築されたテーブルの場合、このプロパティの値は 0 です。

アクセス関数:

int columnCount() const
void setColumnCount(int columns)

rowCount : int

このプロパティは、テーブルの行数を保持します。

デフォルトでは、行数および列数を持たないテーブルの場合、このプロパティには 0 の値が格納されます。

アクセス関数:

int rowCount() const
void setRowCount(int rows)

メンバ関数のドキュメント

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

与えられたparent で新しいテーブルビューを作成します。

QTableWidget::QTableWidget(int rows, int columns, QWidget *parent = nullptr)

与えられたrowscolumns 、および与えられたparent を持つ新しいテーブルビューを作成します。

[virtual noexcept] QTableWidget::~QTableWidget()

このQTableWidget を破棄する。

[signal] void QTableWidget::cellActivated(int row, int column)

このシグナルは、rowcolumn で指定されたセルがアクティブになったときに発せられます。

[signal] void QTableWidget::cellChanged(int row, int column)

このシグナルは、rowcolumn で指定されたセル内のアイテムのデータが変更されるたびに発せられる。

[signal] void QTableWidget::cellClicked(int row, int column)

このシグナルは、表のセルがクリックされるたびに発せられる。指定されたrowcolumn はクリックされたセルである。

[signal] void QTableWidget::cellDoubleClicked(int row, int column)

このシグナルは、表のセルがダブルクリックされるたびに発せられる。指定されたrowcolumn はダブルクリックされたセルである。

[signal] void QTableWidget::cellEntered(int row, int column)

このシグナルは、マウス・カーソルがセルに入ると発せられる。そのセルはrowcolumn で指定される。

このシグナルはmouseTrackingがオンになっているとき、またはアイテムに移動中にマウスボタンが押されたときにのみ発せられる。

[signal] void QTableWidget::cellPressed(int row, int column)

このシグナルは、表のセルが押されるたびに発せられる。指定されたrowcolumn は、押されたセルです。

QWidget *QTableWidget::cellWidget(int row, int column) const

指定されたrowcolumn のセルに表示されたウィジェットを返します。

注: テーブルがウィジェットの所有権を持つ。

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)

このシグナルは、現在のセルが変更されるたびに発行されます。previousRowpreviousColumn で指定されるセルは、以前にフォーカスがあったセルであり、currentRowcurrentColumn で指定されるセルは、新しいカレントセルである。

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)

与えられたaction で終了したドラッグ&ドロップ操作によって与えられたdata を、与えられたrowcolumn で処理します。データとアクションがモデルで処理できる場合はtrue を返し、そうでない場合はfalse を返します。

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

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

Range関数は、選択されたすべての範囲のリストを返します。

QTableWidgetSelectionRangeも参照して ください。

void QTableWidget::setCellWidget(int row, int column, QWidget *widget)

指定されたrow およびcolumn のセルに表示されるように、指定されたwidget を設定します。

セル・ウィジェットAがセル・ウィジェットBに置き換えられると、セル・ウィジェットAは削除される。例えば、以下のコード・スニペットでは、QLineEdit オブジェクトが削除される。

setCellWidget(row, column, new QLineEdit);
...
setCellWidget(row, column, new QTextEdit);

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)

指定されたrowcolumn の項目をitem に設定します。

テーブルがアイテムの所有権を持つ。

並べ替えが有効で(sortingEnabled を参照)、column が現在の並べ替え列である場合、rowitem で決定された並べ替え位置に移動することに注意。

特定の行の複数の項目を設定したい場合(例えば、setItem()をループで呼び出すなど)、ソートをオフにしてから設定し、その後にオンに戻すとよい。こうすることで、同じ行のすべての項目に同じrow 引数を使用できるようになる(つまり、setItem()は行を移動しない)。

item() およびtakeItem()も参照

void QTableWidget::setItemPrototype(const QTableWidgetItem *item)

テーブルのアイテム・プロトタイプを、指定されたitem に設定します。

テーブルウィジェットは、新しいテーブルアイテムを作成する必要がある場合、アイテムプロトタイプクローン関数を使用します。例えば、ユーザが空のセルで編集している場合などです。これは、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)

columnorder に基づいて、テーブル・ウィジェットのすべての行をソートします。

[virtual protected] Qt::DropActions QTableWidget::supportedDropActions() const

このビューでサポートされるドロップアクションを返します。

Qt::DropActionsも参照してください

QTableWidgetItem *QTableWidget::takeHorizontalHeaderItem(int column)

column の水平ヘッダー項目を削除せずにヘッダーから削除します。

QTableWidgetItem *QTableWidget::takeItem(int row, int column)

rowcolumn の項目を削除せずにテーブルから削除します。

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 の視覚的な行を返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。