我有一个QMainWindow
带两个QTableViews
的。每个QTableView
都有自己的QSqlRelationalTableModel
. 我正在使用OnManualSubmit
这两个模型的编辑策略。两个模型都访问同一个数据库,并使用setTable
(每个访问不同的表)填充,然后是select()
.
第二个表的模型通过适当的调用来设置,以setRelation
将其链接到用于填充第一个模型的表。在第二个(子)视图中,我调用view->setItemDelegate(new QSqlRelationalDelegate(view));
一切似乎都很好:出现在第一个视图中的数据列在第二个视图相应字段的下拉列表中。
我的问题:当我向第一个(父)视图添加、编辑或删除记录并将其保存到数据库时,我应该如何刷新第二个视图以使下拉列表准确?
第二个(子)视图中可能有未保存的编辑,我不想丢失这些,也不想保存它们。我只想适当地更新下拉列表。
我试过child_model->relationModel(fk_col)->select();
了,但它child_model->relationModel(fk_col)->columnCount();
表明选择正在父表的所有字段上操作,这似乎是不必要的悲观。
这是我第一次尝试使用<QtSql>
,QTableView
所以我可能会遗漏一些基本的东西。也许有一种方法可以对两个视图使用相同的模型,并且刷新会自动发生?刷新子视图下拉菜单的适当方式是什么?