Qt dataChanged信号较慢然后隐藏/显示视图

问题描述 投票:2回答:1

我实现了自己的QAbstractItemModel(对于TreeView)并覆盖了setData方法,它改变了许多孩子。

  • 如果我在一个大视图上发出一个“dataChanged”信号,那么它很慢并且ui会冻结。
  • 如果我取消注释信号,它真的很快,但我必须与ui交互(因为模型没有通知视图)。
  • 如果我打破模型/视图概念,并在TreeView上调用hide然后show方法,它会很快并显示所有更改...

为什么隐藏/显示呼叫工作?

为什么datachanged信号这么慢?

firstIndex = idx.parent().child(firstChangedIndex.row(), 0)
self.dataChanged.emit(firstIndex, firstIndex)

firstChangedIndex =最高父级,即更改,但可能不是第2列

performance qt treeview pyqt4
1个回答
0
投票

我发现了我的错误......启用了Trolltech modelest ......感谢无效的QModelIndex提示...工作得很好

© www.soinside.com 2019 - 2024. All rights reserved.