有以下问题:
我有真实的模型(Qt独立),它能够报告(通过观察者模式)它被改变,改变可以绝对任何东西(加载新文件)
合同是(单线程):
QModel是这个真实模型的包装器,并且是修改过的发布layoutChanged
on qSignal lst ... :: selectionModel():: selectionChanged()我连接了notify(),就像QModel的插槽一样,表现得好像真正的模型改变了(实际上他们正在丢弃旧状态并计算新的状态),所以他们发出layoutChanged - 这部分似乎工作正常
现在我有以下问题,当模型更改时,所有QModel都会发出layoutChanged,当完成所有操作后,主循环获得控制并尝试重新绘制相关的QListViews
问题是,有些人依赖别人, 例如:它应该如何运作
问题是,当例如最后一个房子被选中,并且真实模型决定放弃它时,所有QModel报告layoutChanged和主循环(我认为)尝试绘制所有QListViews,
但是我不知道热修复/强制命令,或者在从currentIndex()返回之前确保listView基于模型更新
会发生什么,lstHouses返回指向最后一行(不再存在)和index()的索引.isValid()返回true - >因此,当尝试从不存在的索引
中检索真实模型中的值时,它会崩溃有关这些场景如何解决的任何想法?
在请求QListView :: currentIndex
之前,请先调用一些DoSyncNow()