PyQt Widget connect() and disconnect()

3 浏览
0 Comments

PyQt Widget connect() and disconnect()

根据条件,我想要将一个按钮连接/重新连接到不同的功能。

假设我有一个按钮:

myButton = QtGui.QPushButton()

举个例子,假设我检查是否有网络连接。

如果connected == True:
    myButton.clicked.connect(function_A)
elif connected == False:
    myButton.clicked.connect(function_B)

首先,我想要在按钮重新分配/重新连接到另一个功能(function_A或function_B)之前,将按钮从之前连接的任何功能中断开连接。

其次,我已经注意到,在按钮重新连接后,需要额外点击按钮才能选择新的功能。在按钮重新连接到另一个功能之后,它仍然会尝试运行先前连接的功能 - 即在重新连接之前按钮已连接的功能。请给予建议。提前致谢!

稍后编辑:

似乎可以使用小部件的.disconnect()方法来将按钮从连接的功能中断开连接。

myButton.disconnect()

不幸的是,如果小部件没有连接到任何功能,.disconnect()会抛出错误。

为了解决这个问题,我使用了Try/Except。但我宁愿使用更优雅的解决方案...

try: myButton.clicked.disconnect() 
except Exception: pass

0