私はそれに2 QTableViews
とQMainWindow
を持っています。各QTableView
には独自のQSqlRelationalTableModel
があります。両方のモデルの編集方法としてOnManualSubmit
を使用しています。両方のモデルは、同じデータベースをヒットし、select()
続いsetTable
を(各々が異なるテーブルに当たる)、使用して取り込まれます。QTableViewは外部キーをリフレッシュしませんか?
第二テーブルのモデルは、最初のモデルを移入するために使用されるテーブルにリンクするsetRelation
への適切な呼び出しで設定されています。 2番目(子)のビューでは、view->setItemDelegate(new QSqlRelationalDelegate(view));
すべてがうまくいくように見えます。最初のビューに表示されるデータは、2番目のビューの適切なフィールドのドロップダウンリストに表示されます。
問題:最初の(親)ビューにレコードを追加、編集、または削除してデータベースに保存すると、ドロップダウンが正確になるように2番目のビューを更新する方法を教えてください。
は、第二の(子)ビューに保存されていない編集があるかもしれない、と私はそれらを失いたくない、でも私はまだそれらを保存したいです。ドロップダウンリストを適切に更新したいだけです。
私はchild_model->relationModel(fk_col)->select();
を試しましたが、それはうまくいきますが、child_model->relationModel(fk_col)->columnCount();
は、選択が親テーブルのすべてのフィールドで動作していることを示しています。これは不要なペシメーションのようです。
これは私の最初の試みで、<QtSql>
とQTableView
を使用しているため、何か根本的なものが欠落している可能性があります。両方のビューに同じモデルを使用する方法があり、リフレッシュは自動的に行われますか?子ビューのドロップダウンをリフレッシュする適切な方法は何ですか?