如何通知模型”数据已改变“的问题

一如当初 2013-04-25 09:46:30
在学习模型/视图的过程中遇到的一个问题

在一般情况下(包括官方DEMO),在模型的setData函数中来修改底层数据,如果修改成功,则发射一个dataChanged()信号来通知视图刷新数据。这个信号需要传递数据的索引

我的问题是,我的数据并不一定会通过模型区去修改,也就是可能直接修改数据源
这个时候如何立即通知视图做出反应呢?

我尝试在模型中声明一个槽,在数据Item类中创建一个信号,当数据变化时发射这个信号去让模型通知视图
可是这里需要提供一个数据的索引,而QModexIndex是临时性的,不可传递,没办法提供这个数据的索引

现在正在看QPersistentModelIndex这个持久性的索引,不知道是否能解决问题。。。
有遇到过这方面问题的朋友能谈谈吗?
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkldiy 2013-04-28
  • 打赏
  • 举报
回复
楼主研究得深入啊,学习了~
一如当初 2013-04-27
  • 打赏
  • 举报
回复
学习后发现可以通过持久模型索引解决。 来人领分吧
一如当初 2013-04-25
  • 打赏
  • 举报
回复
虽然可以通过 beginResetModel 和 endResetModel 来刷新整个视图 但是这样不知道在数据多的时候是否有效率影响,而且这个办法会重置currentIndex,让视图变为未选择状态

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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