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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。