如何在不触发事件的情况下禁用 QCheckBox?

How can I disable a QCheckBox WITHOUT triggering an event?

我想知道是否有在 pyqt "WITHOUT" 中禁用复选框(QCheckBox)上的(setCheckState)触发事件?所以这只是一个显示更改,现在未选中复选框但不会触发我连接到的方法。感谢您的帮助。

如果可能的话,会喜欢一个基本的例子。

您可以在禁用 QCheckBox 之前简单地阻止信号,并且 之后重新启用它们。假设 chk 是你的 QCheckBox 对象只是做:

chk.blockSignals()
# then you change the checkbox as you want
chk.unblockSignals()

@mguijarr 的回答说明了一切,但显然他们稍微改变了功能。

在 QT 5.14.0 中是:

chk.blockSignals(True)
chk.blockSignals(False)
# same syntax for c++ and py at this place

docs for python

docs for c++

(也许这是一条评论更好,但我需要更多的评论代表)