Полагаю, лучший способ определить, какая кнопка отмечена, - это использовать QButtonGroup , поскольку он предоставляет контейнер для организации групп виджетов кнопок.Это не визуальный объект, поэтому он не заменяет компоновку для визуального расположения ваших радиокнопок, но он позволяет вам сделать их взаимоисключающими и связать с ними целочисленный «id», давая вам знать, какой из них проверен безнеобходимость перебирать все виджеты, присутствующие в макете.
Если вы решите использовать его, ваш код должен превратиться в нечто вроде этого:
self.wPaymantType.qgbSomeSelectionGroup = QtGui.QGroupBox()
vbox = QtGui.QVBoxLayout()
radioGroup = QtGui.QButtonGroup()
radioGroup.setExclusive(True)
for i,row in enumerate(listOfChoices):
radio = QtGui.QRadioButton(row)
radioGroup.addButton(radio, i)
if bIsFirst:
radio.setChecked(True)
bIsFirst = False
if len(row.name) > nMaxLen:
nMaxLen = len(row.name)
vbox.addWidget(radio)
self.wPaymantType.qgbSomeSelectionGroup.setLayout(vbox)
Чтобы идентифицировать отмеченную кнопку,Вы можете использовать метод QButtonGroup checkedId :
buttonId = radioGroup.checkedId()
или если вы хотите получить сам объект кнопки, вы можете использовать метод checkedButton :
button = radioGroup.checkedButton()