QSqlRelationalDelegate Class
QSqlRelationalDelegate クラスは、QSqlRelationalTableModel からデータを表示および編集するために使用されるデリゲートを提供します。
ヘッダ | #include <QSqlRelationalDelegate> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
qmake: | QT += sql |
継承: | 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.
© 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.