我使用一个qabstractemodel包装一个类,这个类本质上是一个python字典。你知道吗
项目模型就在那里,这样我就可以使用QTreeView了。你知道吗
当我创建QTreeView时,我用字典的一个实例实例化包装器,然后实例化一个ItemModel来包装它。(这个包装器的基础是:https://github.com/spanners/pyqt4-examples/blob/master/treeview.py)
当我的字典发生变化时,我会发出一个信号,ItemModel会接收到这个信号。我不知道到底发生了什么变化,所以我检查了ItemModel中的节点,如果它们与字典中的不匹配,我会添加或删除节点,直到它们匹配为止。然后我发出dataChanged,根节点作为起始索引,然后在-1,-1处结束索引。你知道吗
大多数情况下,这一切都很好。你知道吗
但偶尔我会被吓到Python.exe崩溃就像我从错误的线程访问了一个小部件。你知道吗
当更新下面的模型时,如果我试图通过TreeView编辑一个值,这种情况似乎特别可能。你知道吗
当存在活动的编辑器委托时,我是否应该做些什么来确保安全地更改模型?你知道吗
我还应该注意什么其他的事情…或者有人更清楚我应该如何开始这样做吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐