QAbstractTableModel Class

QAbstractTableModel クラスは、テーブルモデルを作成するためにサブクラス化できる抽象モデルを提供します。詳細...

Header: #include <QAbstractTableModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Inherits: QAbstractItemModel
Inherited By:

QSqlQueryModel

パブリック関数

QAbstractTableModel(QObject *parent = nullptr)
virtual ~QAbstractTableModel()

再実装されたパブリック関数

virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override

詳細説明

QAbstractTableModel は、データを項目の二次元配列として表現するモデルのための標準インターフェースを提供します。これは直接は使用されませんが、サブクラス化する必要があります。

このモデルは、QAbstractItemModel よりも特殊なインタフェースを提供するため、QListView にデータを提供するために使用することはできますが、ツリー・ビューでの使用には適していません。単純な項目のリストを表現する必要があり、単一の列のデータを含むモデルのみが必要な場合は、QAbstractListModel をサブクラス化する方が適切な場合があります。

rowCount() およびcolumnCount() 関数は、テーブルの次元を返します。モデル内の項目に対応するモデルのインデックスを取得するには、index() を使用し、行番号と列番号のみを指定します。

サブクラス化

QAbstractTableModel をサブクラス化する際には、rowCount()、columnCount()、data() を実装する必要があります。index() およびparent() 関数のデフォルト実装は QAbstractTableModel によって提供されます。行儀の良いモデルはheaderData() も実装します。

編集可能なモデルはsetData() を実装し、flags() を実装してQt::ItemIsEditable を含む値を返す必要があります。

リサイズ可能なデータ構造へのインタフェースを提供するモデルは、insertRows ()、removeRows ()、insertColumns ()、removeColumns ()の実装を提供することができます。これらの関数を実装する場合は、接続されているすべてのビューが変更を認識できるように、適切な関数を呼び出すことが重要です:

注釈 モデルのサブクラス化に関する一般的なガイドラインは、モデル・サブクラス化リファレンスにあります。

スレッドの安全性

QObject のサブクラスであるため、QAbstractTableModel はthread-safe ではありません。QAbstractTableModel のモデル関連の API は、モデルオブジェクトが存在するスレッドからのみ呼び出される必要があります。QAbstractTableModel がビューと接続されている場合、それは GUI スレッドを意味します。バックグランドスレッドを使用してモデルの内容を投入または変更することは可能ですが、バックグランドスレッドはモデル関連の API を直接呼び出すことができないため、注意が必要です。その代わりに、更新をキューに入れ、メインスレッドで適用する必要があります。これはキュー接続で行うことができます。

モデルクラスQAbstractItemModelQAbstractListModelも参照してください

メンバ関数ドキュメント

[explicit] QAbstractTableModel::QAbstractTableModel(QObject *parent = nullptr)

与えられたparent に対して抽象テーブルモデルを構築する。

[virtual noexcept] QAbstractTableModel::~QAbstractTableModel()

抽象テーブルモデルを破棄します。

[override virtual] bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

再実装:QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

[override virtual] Qt::ItemFlags QAbstractTableModel::flags(const QModelIndex &index) const

再実装:QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] QModelIndex QAbstractTableModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

再インプリメント:QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

rowcolumn のデータのインデックスをparent で返します。

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

[override virtual] QModelIndex QAbstractTableModel::sibling(int row, int column, const QModelIndex &idx) const

再インプリメント:QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

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