我试图构建一个用户界面,它在每秒钟刷新数据时显示表的内容。
因此,我有一系列的模型:
QSqlTableModel -访问表内容QIdentityProxyModel继承来稍微修改数据(源是TableModel)这条链以QTableView结尾。因为QSqlTableModel每秒钟刷新一次,所以TableView中的任何选择也会每秒钟删除一次。现在我有两个想法来解决这个问题。
QIdentityProxyModel没有转发像modelAboutToBeReset、modelReset或dataChanged这样的信号。从MyModel重新发送这些信号也是不可能的,因为它们是私有的。我正在寻找其他方法来解决这些刷新问题,但没有成功。但我无法想象,我是第一个使用代理模型链,并结合定期模型刷新和选择的人。
有人能给我一些提示吗?
提前谢谢。
也许值得注意的是:
QSqlTableModel用于多个TableViews。(使用不同的FilterProxyModel链。)所以我不能停止刷新,因为一个视图有一个选择。希望我的问题有意义。
发布于 2014-02-17 16:06:44
QAbstractItemModel包含了许多信号,这些信号可以帮助您了解模型中的数据何时正在或将要发生变化。特别是,它具有以下信号:
假设您丢失了选择,我假设粗体信号就是您想要关注的信号,因为默认的Qt行为是保留选择(如果可以的话)--在删除/插入列或行时,它不会影响所选内容。
一旦连接到这些信号,在modelAboutToBeReset中,我建议为可以重用的单元获取I,以便再次选择它们;在modelReset中,建议使用这些I来获取QModelIndex,并使用它们再次选择相同的单元格。
https://stackoverflow.com/questions/21597091
复制相似问题