• 1250阅读
  • 3回复

怎么不让treewidget单击或双击触发itemchanged信号 [复制链接]

上一主题 下一主题
离线birdspeed
 

只看楼主 倒序阅读 楼主  发表于: 2021-06-11
在treewidget单击或双击会触发itemchanged信号,但是我只需要内容改变才触发itemchanged信号,网上查了很久有一片博文说是“QTreeWidget中的itemChanged事件会一直递归的调用,也就是说如果我们设置了子节点的状态(使用程序设置,或者手动点击),那么被设置的节点会继续调用itemChanged信号”,怎样才能不让treewidget单击或双击触发itemchanged信号?
离线20091001753

只看该作者 1楼 发表于: 2021-06-11
仅仅单双击是不会触发 changed 信号的,或许是你不细心导致的:
itemChanged
itemClicked
它俩太像了,有时候不细心可能会弄错。
(づ ̄ 3 ̄)づ
离线birdspeed

只看该作者 2楼 发表于: 2021-06-13
回 20091001753 的帖子
20091001753:仅仅单双击是不会触发 changed 信号的,或许是你不细心导致的:
itemChanged
itemClicked
它俩太像了,有时候不细心可能会弄错。 (2021-06-11 20:51) 

单击的确会触发itemChanged信号,而且是两次。最后我用笨办法解决了。先双击记录下文本,然后在itemchanged信号里对比,文本改变就是改变了。再次感谢版主,两次提问都是您回答的。
离线birdspeed

只看该作者 3楼 发表于: 2021-06-13
回 20091001753 的帖子
20091001753:
仅仅单双击是不会触发 changed 信号的,或许是你不细心导致的:
itemChanged
itemClicked
它俩太像了,有时候不细心可能会弄错。

版主,再请教您一个问题,在tablewidget中检测到文本输入,就在tablewidget上方显示另一个tablewidget,第二个table里的内容根据第一个的实时内容刷新,供选择,和vscode中的自动补全类似,怎么实现这个。我本来是准备在检测文本输入时重新创建一个widget,但是显示的时候会直接退出编辑模式。
快速回复
限100 字节
 
上一个 下一个