根据条件,我希望将一个按钮连接/重新连接到不同的函数。
假设我有一个按钮:
myButton = QtGui.QPushButton()
例如,假设我检查是否存在互联网连接。
if connected == True:
myButton.clicked.connect(function_A)
elif connected == False:
myButton.clicked.connect(function_B)
首先,我想将一个按钮与其之前连接的任何功能断开连接,然后重新分配/重新连接到另一个函数(函数_A或函数_B)。 其次,我已经注意到,在重新连接按钮后,需要多点击一次按钮才能选择新功能。在将按钮重新连接到另一个函数后,它仍然尝试运行以前连接按钮的函数(重新连接之前)。请给出建议。 预先感谢!
稍后编辑:
似乎 widget 的.disconnect() 方法可用于从其连接的函数中断开按钮。
myButton.disconnect()
不幸的是,如果小部件未连接到任何函数,.disconnect()会抛出一个错误。我正在使用Try/Except来解决这个问题。但我更想使用一种更优雅的解决方案...
遗憾的是,如果小部件未连接到任何函数,.disconnect()会抛出一个错误。我正在使用Try/Except来解决这个问题。但我更想使用一种更优雅的解决方案...
try: myButton.clicked.disconnect()
except Exception: pass