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

时间:2014-03-12 13:47:06

标签: performance qt treeview pyqt4

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

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

为什么隐藏/显示通话工作?

为什么datachanged信号这么慢?

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

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

1 个答案:

答案 0 :(得分:0)

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