临时抑制PyQt事件?
我正在给一个QTreeWidget的某个分支添加内容,然后把这个分支的父项设置为展开状态。结果,itemExpanded这个信号被触发了,这不是我想要的。有没有什么临时的方法可以在一段代码执行时,暂时屏蔽或忽略这些信号?
1 个回答
8
你可以通过使用 QObject::blockSignals 来设置信号的阻塞。
http://doc.qt.nokia.com/stable/qobject.html#blockSignals
bool QObject::blockSignals ( bool block )
如果 block 设置为 true,这个对象发出的信号就会被阻止(也就是说,发出信号时不会触发任何与之连接的东西)。如果 block 设置为 false,就不会有这样的阻止发生。 返回值是之前信号是否被阻塞的状态。 注意,即使这个对象的信号被阻止,destroyed() 信号仍然会被发出。 你还可以查看 signalsBlocked() 来了解更多信息。