我有派生自QSqlRelationalTableModel
. 我使用 SQLite 数据库。我需要更改数据库文件。我关闭旧的数据库文件,调用 SetDatabaseName("path to new file") 并打开新的数据库文件。现在我只为模型调用 select(),但它返回 false。如果我调用 setTable("table") 并且只有在 select() 之后,一切正常......但是表的名称是相同的......
我没有找到任何可以通知模型数据库连接已更改的方法....您知道通知模型的更好方法吗?
好的。我又回到了这个话题。
更改 db 后,我必须使用相同的表名调用 setTable() 来重新初始化表模型。而且我没有找到更好的方法来重新初始化表格视图,我称之为
pTableView->setModel(NULL);
pTableView->setModel(model);
这会产生很多不必要的代码调用,但在其他情况下,表视图不知道表模型的变化(例如列数)。
我没有找到更好的方法来重新初始化QSqlTableModel
和QTableView
. 一些想法?