QSqlRelationalDelegate Class

QSqlRelationalDelegate クラスは、QSqlRelationalTableModel からデータを表示および編集するために使用されるデリゲートを提供します。 ...続きを読む

Header: #include <QSqlRelationalDelegate>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake: QT += sql
Inherits: QStyledItemDelegate

パブリック関数

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

再実装パブリック関数

virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override

詳細説明

デフォルトのデリゲートとは異なり、QSqlRelationalDelegate は他のテーブルの外部キーであるフィールドのコンボボックスを提供します。このクラスを使用するには、単純に QSqlRelationalDelegate のインスタンスを持つビューでQAbstractItemView::setItemDelegate() を呼び出します:

    std::unique_ptr<QTableView> view{new QTableView};
    view->setModel(model);
    view->setItemDelegate(new QSqlRelationalDelegate(view.get()));

リレーショナルテーブルモデルの例(下図)は、QSqlRelationalDelegate をQSqlRelationalTableModel と組み合わせて使用し、外部キーサポートを持つテーブルを提供する方法を示しています。

QSqlRelationalTableModel およびModel/View Programmingも参照してください

メンバ関数ドキュメント

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

与えられたparent で QSqlRelationalDelegate オブジェクトを構築します。

[virtual noexcept] QSqlRelationalDelegate::~QSqlRelationalDelegate()

QSqlRelationalDelegate オブジェクトを破棄し、割り当てられたリソースを解放します。

[override virtual] QWidget *QSqlRelationalDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const

再インプリメントします:QStyledItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const.

[override virtual] void QSqlRelationalDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const

再実装:QStyledItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const.

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