class RadioButtonGroup(QGroupBox): def __init__(self, title, labels): QGroupBox.__init__(self, title) self.layout = QBoxLayout(QBoxLayout.LeftToRight) self.buttons = {} for label in labels: button = QRadioButton(label) self.buttons[label] = button self.layout.addWidget(button) self.setLayout(self.layout) def __getitem__(self, label): return self.buttons[str(label)] def __iter__(self): return self.buttons.itervalues() def setVertical(self): self.layout.setDirection(QBoxLayout.TopToBottom) def setHorizontal(self): self.layout.setDirection(QBoxLayout.LeftToRight) def checkedText(self): for button in self: if button.isChecked(): return button.text()