PyQt Widget connect() and disconnect()
- 论坛
- PyQt Widget connect() and disconnect()
3 浏览
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