私はそれQMainWindow
に2つQTableViews
あります。それぞれQTableView
に独自のがありQSqlRelationalTableModel
ます。私はOnManualSubmit
両方のモデルの編集戦略として使用しています。両方のモデルが同じデータベースにヒットし、setTable
(それぞれが異なるテーブルにヒットする)を使用してデータが入力され、その後に。が続きselect()
ます。
setRelation
2番目のテーブルのモデルは、最初のモデルの作成に使用されたテーブルにリンクするための適切な呼び出しで設定されます。2番目の(子)ビューで、私はview->setItemDelegate(new QSqlRelationalDelegate(view));
すべてがうまく機能しているようです。最初のビューに表示されるデータは、2番目のビューの適切なフィールドのドロップダウンに一覧表示されます。
私の問題:最初の(親)ビューにレコードを追加、編集、または削除してデータベースに保存する場合、ドロップダウンが正確になるように2番目のビューを更新するにはどうすればよいですか?
2番目の(子)ビューに未保存の編集がある可能性があり、それらを失いたくないし、まだ保存したくない。ドロップダウンリストを適切に更新したいだけです。
試しchild_model->relationModel(fk_col)->select();
てみchild_model->relationModel(fk_col)->columnCount();
ましたが、動作しますが、selectが親テーブルのすべてのフィールドで動作していることを示しています。これは、不必要な悲観化のようです。
これは私の最初の使用の試み<QtSql>
でQTableView
あるため、基本的なものが欠けている可能性があります。おそらく、両方のビューに同じモデルを使用する方法があり、更新は自動的に行われますか?子ビューのドロップダウンを更新するための適切な方法は何ですか?