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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt dataChanged信号较慢然后隐藏/显示视图相关的知识,希望对你有一定的参考价值。

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

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

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

为什么datachanged信号这么慢?

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

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

答案

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

以上是关于Qt dataChanged信号较慢然后隐藏/显示视图的主要内容,如果未能解决你的问题,请参考以下文章

MapItemView 在 dataChanged 信号后未更新

QTableView 似乎对 dataChanged 信号没有反应

Qt - 仅在发出两个信号时才调用插槽

发出 dataChanged 信号 PyQt5

如何处理圆图的Datachange信号?

无法在 QAbstractItemModel 的 dataChanged 信号槽中获取发送者对象