0

我有两个通过信号槽连接的按钮,像这样

self.button_1.clicked.connect(self.someFunc)
self.button_2.clicked.connect(self.someFunc2)

不是每次我点击button_1,button_2他们的功能都会执行。这些按钮位于一个按钮组中,因此一次只能检查一个,我遇到的问题是每次按下按钮时该功能都会运行,但我希望该功能只运行一次。有没有办法做到这一点?

4

2 回答 2

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

希望有帮助。

于 2013-03-15T05:19:36.480 回答
0

我知道这个问题已经很晚了,但是如果其他人有这个问题,另一种建议是在按钮运行后通过 setDisabled(True) 方法禁用按钮。这可以防止它被激活并给用户反馈他们不能再次运行它。

self.button_1.setDisabled(True)在函数体的某个地方。

于 2013-08-07T17:18:28.500 回答