两个模型使用同一个底层数据结构时,如何同步两个模型的数据?
ModelA和ModelB用到同一个数据源,但是计算方式不大一样。
ModelA使用setData修改底层数据的时候,ModelB如何知道相关项已经被修改并通知视图更新呢?
例如有个表有两个字段,name和type,ModelA用于提供原表数据,ModelB用于统计全表每种type的个数。
原始数据
name type
a Int
b Int
c Float
ModelA
name type
a Int
b Int
c Float
ModelB
type count
Int 2
Float 1
这里ModelA使用setData将第2行b的类型改为Float时,ModelB要将Int的个数更新为1,Float的个数更新为2。
[解决办法]
可不可以底层的数据用qobject封装下
然后模型对齐操作时都是基于signal-slot的
[解决办法]
模型A改变后向模型B发射一个自定义信号,模型B收到后进行处理,最后模型B发射dataChanged信号,通知视图进行更新。
[解决办法]
应该如楼上所说原理,就像win下的回调一样,你得调用一个函数或才发射一个信号告诉他已经改变了,当然你也可以轮询