【发布时间】:2016-06-20 23:26:12
【问题描述】:
我有 2 个单选按钮。第一个 radio1 连接到函数 func(),在此函数内部将按钮 pushButton 连接到另一个函数 print_me()。
这是被剥离的代码:
radio = self.dockwidget.radioButton
radio.clicked.connect(func)
def func():
# Connect pushButton to "print_me" function
connect = self.dockwidget.pushButton
connect.clicked.connect(print_me)
def print_me():
print 'Connected'
当用户单击radio1,然后单击pushButton 时,会打印一条消息。问题是如果用户点击radio 10 次,然后点击pushButton,消息也会被打印10 次。或者如果用户点击radio1,然后点击radio2,再点击radio1,仍然会打印两次消息。
有没有办法防止这种情况发生,以便在单击任一单选按钮时只打印一次消息?
【问题讨论】:
-
你可以使用一个全局变量来存储函数是否已经被调用。
-
@Ashafix - 谢谢,我会检查一下,看看情况如何 =)
-
小心全局变量的想法。你确定你只希望函数在程序的整个执行过程中运行一次吗?如果单选按钮被清除(例如,通过单击组中的另一个按钮)然后再次单击,您是否希望该功能第二次运行?如果用户离开该表单,然后又回到该表单会怎样?
-
@nephtes - 谢谢,是的,我确定我只想运行一次。我确实有 2 个按钮,当一个被点击时,另一个被清除。但无论点击哪一个,我只需要它运行一次。即使用户导航到另一个表单:)
标签: python qt-designer qpushbutton qradiobutton