본문 바로가기

프로그래밍/PyQt5 GUI

18. QRadioButton

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