我有两个通过信号槽连接的按钮,像这样
self.button_1.clicked.connect(self.someFunc)
self.button_2.clicked.connect(self.someFunc2)
不是每次我点击button_1,button_2他们的功能都会执行。这些按钮位于一个按钮组中,因此一次只能检查一个,我遇到的问题是每次按下按钮时该功能都会运行,但我希望该功能只运行一次。有没有办法做到这一点?
在函数的顶部,放置一个 if 语句来检查它是否已经运行。
firstRun = true
def someFunc:
if not(self.firstRun):
return
# doSomeFunc
self.firstRun = false
或者在功能的顶部,您可以断开连接。
http://qt-project.org/doc/qt-4.8/qobject.html#disconnect-4
希望有帮助。
我知道这个问题已经很晚了,但是如果其他人有这个问题,另一种建议是在按钮运行后通过 setDisabled(True) 方法禁用按钮。这可以防止它被激活并给用户反馈他们不能再次运行它。
即self.button_1.setDisabled(True)
在函数体的某个地方。