在Qt C ++中更新QSQLTableModel

时间:2013-07-23 20:54:25

标签: c++ qt qsqltablemodel

我创建了一个仅用于SQL数据库中bindValues的对话框, 我可以成功地保存每一条新纪录。问题是我有另一个QSQlTableModel对话框,它只显示数据库中的信息。每次我创建一个新记录时,我必须关闭该程序并再次运行它以查看ShowInformationDialog()中的更改。 你知道某种方式我不需要关闭程序来更新ShowInformationDialog()中的信息吗?

1 个答案:

答案 0 :(得分:0)

您可以使用select()类的QSqlTableModel方法使用数据库中的数据重新填充模型。绑定视图会自动更新。我建议您将更新数据库中数据的位置(即更新SQL数据库的对话框)中的信号连接到ShowInformationDialog()中调用select()对象的QSqlTableModel的自定义插槽。我假设您有一个QMainWindow对象,它是两个对话的父对象,很可能是建立连接的最佳位置。

此外,由于您的ShowInformationDialog()模型仅用于查看数据,请考虑使用QSqlQueryModel。如果使用,则应使用setQuery()方法而不是select(),否则(信号与ShowInformationDialog()的插槽连接)将是相同的。