我有两个按钮,我通过信号插槽连接,如此
self.button_1.clicked.connect(self.someFunc)
self.button_2.clicked.connect(self.someFunc2)
不是每次我点击button_1,button_2都会执行他们的功能。按钮位于按钮组中,因此一次只能检查一个,我遇到的问题是每次按下按钮时该功能都会运行,但我希望该功能只运行一次。有没有办法做到这一点?
答案 0 :(得分:0)
在函数顶部,输入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
希望有所帮助。
答案 1 :(得分:0)
我知道这个问题已经很晚了,但是如果其他人有这个问题,另一个建议就是在运行后通过setDisabled(True)方法禁用该按钮。这可以防止它被激活并向用户反馈他们无法再次运行它。
即self.button_1.setDisabled(True)
在函数体内的某处。