QRadioButton은 사용자에게 여러 개 중 하나의 옵션을 선택하도록 할 때 사용합니다. 그래서 한 위젯 안에 여러 라디오 버튼은 기본적으로 autoExclusive로 설정되어 있습니다. 하나의 버튼을 선택하면 나머지 버튼들은 선택 해제가 됩니다.
한 번에 여러 버튼을 선택할 수 있도록 하려면 setAutoExclusive() 메서드를 False로 합니다. 또한 한 위젯 안에 여러 개의 exclusive 버튼 그룹을 배치하고 싶다면 QButtonGroup() 메서드를 사용할 수 있습니다. (QRadioButton 공식 문서) 참고
toggle() 메서드를 이용하여 상태를 변경하고, isChecked() 메서드를 이용하여 버튼 상태를 가져옵니다.
자주 쓰이는 QRadioButton 메서드는 아래 표와 같습니다.
자주 쓰이는 메서드
메서드 | 설명 |
text() | 버튼의 텍스트를 반환합니다. |
setText() | 라벨에 들어갈 텍스트를 설정합니다. |
setChecked() | 버튼의 선택 여부를 설정합니다. |
isChecked() | 버튼의 선택 여부를 반환합니다. |
toggle() | 버튼의 상태를 변경합니다. |
자주 쓰이는 시그널
메서드 | 설명 |
pressed() | 버튼을 누를 때 신호를 발생합니다. |
released() | 버튼을 땔 때 신호를 발생합니다. |
clicked() | 버튼을 클릭할 때 신호를 발생합니다. |
toggled() | 버튼의 상태가 바뀔 때 신호를 발생합니다. |
18-1 예제: ex17
import sys from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): rbtn1 = QRadioButton('First Button', self) rbtn1.move(20, 20) rbtn1.setChecked(True) rbtn2 = QRadioButton(self) rbtn2.move(20, 80) rbtn2.setText('Second Button') self.setWindowTitle('QRadioButton') self.setGeometry(300, 300, 300, 200) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_()) |
18-2 설명
rbtn1 = QRadioButton('First Button', self) |
QRadioButton에 라벨과 부모 위젯을 입력하고 생성합니다.
rbtn1.setChecked(True) |
setChecked() 메서드를 True로 설정하면 프로그램이 실행될 때 버튼이 라벨버튼이 체크되어 표시됩니다.
rbtn2.setText('Second Button') |
setText() 메서드를 통해서도 라벨의 텍스트를 설정할 수 있습니다.
18-3 결과
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
20. QLineEdit (0) | 2021.07.23 |
---|---|
19. QComboBox (0) | 2021.07.23 |
17. QCheckBox (0) | 2021.07.23 |
16. QLabel (0) | 2021.07.23 |
15. QPushButton (0) | 2021.07.23 |