QT 如何实现表格里面的数据更新但是界面不刷新呢

遥遥未可期 2019-02-14 02:26:06
就是类似于ajax那种技术,选中的表格仍然是选中状态,焦点仍然存在,但是表格中的数据显示会改变。定时刷新,模型用的QSqlTableModel
...全文
875 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
QSqlTableModel 是同步的。和AJAX完全不一样。这东西,是要保持一致性的。
怕Sql效率差,建议自己定义个模型。除非做电子表格,其他的更新工作还是建议在独立的Form界面中实现。一般写Delegate的时间都比建一个Form要复杂了。
大苟姬 2019-02-15
  • 打赏
  • 举报
回复
你的更新意思是指数据库的数据异步发生变化了?如果你设置了定期更新显示数据,可以在这个方法里去获得选中的单元记录起来,更新后再手动加条选中该行
Marcelxx 2019-02-15
  • 打赏
  • 举报
回复
看看Model的几个信号,有局部数据变更了,有重设model的,你试试。
遥遥未可期 2019-02-14
  • 打赏
  • 举报
回复
引用 1 楼 弓人水 的回复:
直接使用模型QSqlTableModel应该实现不了异步刷新的功能,因为每次select相当于模型内数据重置,所以选中状态、滚动条状态那些也会重置。
建议自定义扩展一个QAbstractItemModel,内部涉及新数据和旧数据的比较(增删改)。


那QTableView有编辑状态的信号吗,我想实现编辑状态下不刷新,编辑结束后刷新
弓人水 2019-02-14
  • 打赏
  • 举报
回复
直接使用模型QSqlTableModel应该实现不了异步刷新的功能,因为每次select相当于模型内数据重置,所以选中状态、滚动条状态那些也会重置。
建议自定义扩展一个QAbstractItemModel,内部涉及新数据和旧数据的比较(增删改)。

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧