Как объясняет @ ekhumoro , вы можете добавить параметр checked
в функцию и выполнять свою обработку, только если он True
:
def update_stimulus(self, checked):
if not checked:
return
if self.radioButton1.isChecked():
print('1')
if self.radioButton2.isChecked():
print('2')
if self.radioButton3.isChecked():
print('3')
Имейте в виду, хотячто если вы хотите, чтобы в одном и том же групповом блоке были разные "группы" переключателей, то все это не будет работать должным образом, поскольку все они будут рассматриваться как часть одной и той же группы: все кнопки Qt (виджеты, которые наследуют QAbstractButton
: QPushButton, QToolButton, QCheckBox и QRadioButton) имеют свойство autoExclusive
, которое по умолчанию отключено, кроме переключателей. Это свойство делает все кнопки, принадлежащие одному и тому же родительскому виджету, автоматически исключающими.
Если вам нужны разные группы в одном и том же родительском элементе, решение состоит в использовании QButtonGroup
, который расширяетисключительная функциональность, ограничивая членство каждой кнопки в определенной группе.
def __init__(self):
# ...
self.buttonGroupA = QtWidgets.QButtonGroup()
self.buttonGroupA.addButton(self.radioButton1)
self.buttonGroupA.addButton(self.radioButton2)
self.buttonGroupA.addButton(self.radioButton3)
self.buttonGroupA.buttonToggled[QtWidgets.QAbstractButton, bool].connect(self.update_stimulusA)
self.buttonGroupB = QtWidgets.QButtonGroup()
self.buttonGroupB.addButton(self.radioButton4)
self.buttonGroupB.addButton(self.radioButton5)
self.buttonGroupB.addButton(self.radioButton6)
self.buttonGroupB.buttonToggled[QtWidgets.QAbstractButton, bool].connect(self.update_stimulusB)
def update_stimulusA(self, btn, checked):
if not checked:
return
# do something with group A
def update_stimulusB(self, btn, checked):
if not checked:
return
# do something with group B
Создание группы кнопок также возможно из Designer: просто выберите по крайней мере две кнопки, которые будут членами одной группы, вернощелкните по одному из них, перейдите в подменю «Назначить группе кнопок» и выберите «Новая группа кнопок». Чтобы добавить кнопку в существующую группу, просто используйте то же контекстное меню и выберите группу, в которую вы хотите добавить эту кнопку.