У меня есть 2 переключателя. Первый, radio1
, подключен к функции func()
и внутри этой функции соединяет кнопку pushButton
с другой функцией print_me()
.Как щелкнуть несколько раз на QRadioButton, но только запустить функцию один раз?
Это код урезанная:
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 - Спасибо, я проверю это и посмотрю, как он идет =) – Joseph
Осторожно с идеей глобальной переменной. Вы уверены, что хотите, чтобы функция выполнялась только один раз во время всего выполнения программы? Если радиокнопка очищается (например, нажав на другую кнопку в группе), а затем снова щелкнув, вы хотите, чтобы функция выполнялась во второй раз? Как насчет того, если пользователь переходит от этой формы, а затем возвращается к ней? – nephtes