PyQt5 - Radio Button(라디오 버튼) 만들기
본문 바로가기
파이썬(Python)/파이썬 GUI(PyQt5 & tkinter)

PyQt5 - Radio Button(라디오 버튼) 만들기

by Squat Lee 2020. 12. 7.

이번 포스트에서는 PyQt5를 이용하여 Radio Button(라디오 버튼)을 만들어 보겠습니다.

 

QRadioButton을 사용하면 되고, 전체 코드는 아래와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import sys
from PyQt5.QtWidgets import *
 
class TestWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()
 
    def setupUI(self):
        self.setWindowTitle('RadioWindow')
 
        self.radio1 = QRadioButton('항목1',self)
        self.radio1.move(20,20)
        self.radio1.setChecked(True)
        self.radio1.clicked.connect(self.radioButton_clicked)
 
        self.radio2 = QRadioButton('항목2',self)
        self.radio2.move(20,40)
        self.radio2.clicked.connect(self.radioButton_clicked)
 
        self.radio3 = QRadioButton('항목3',self)
        self.radio3.move(20,60)
        self.radio3.clicked.connect(self.radioButton_clicked)
 
    def radioButton_clicked(self):
        msg = ""
        if self.radio1.isChecked():
            msg = '항목1'
        elif self.radio2.isChecked():
            msg = '항목2'
        else:
            msg = "항목3"
 
        QMessageBox.about(self'선택된 항목', msg+'선택됨')
 
if __name__=='__main__':
    app = QApplication(sys.argv)
    window = TestWindow()
    window.show()
    app.exec_()
cs

 

import sys

from PyQt5.QtWidgets import *

 

위와 같이 임포트를 합니다.

 

 sys는 'sys.argv'를 쓰기 위해 필요하고, PyQt5.QtWidgets은 윈도우와 각 위젯을 만들기 위해 필요합니다.

 

class TestWindow(QMainWindow):

    def __init__(self):

        super().__init__()

        self.setupUI()

 

클래스를 TestWindow라고 지정하고 QMainWindow를 상속받습니다.

super().를 써서 상위클래스를 시작하고, self.setupUI()로 아래에 작성한 UI를 불러옵니다.

 

def setupUI(self):

        self.setWindowTitle('RadioWindow')

 

        self.radio1 = QRadioButton('항목1',self)

        self.radio1.move(20,20)

        self.radio1.setChecked(True)

        self.radio1.clicked.connect(self.radioButton_clicked)

 

        self.radio2 = QRadioButton('항목2',self)

        self.radio2.move(20,40)

        self.radio2.clicked.connect(self.radioButton_clicked)

 

        self.radio3 = QRadioButton('항목3',self)

        self.radio3.move(20,60)

        self.radio3.clicked.connect(self.radioButton_clicked)

 

UI는 Window를 먼저 만들고 radio button을 3개를 만들어 줍니다. 이름은 1, 2, 3 이라고 정합니다.

"self.radio1.setChecked(True)" 초기에 선택된 값은 1번 RadioButton으로 만들어 줍니다.

 

def radioButton_clicked(self):

        msg = ""

        if self.radio1.isChecked():

            msg = '항목1'

        elif self.radio2.isChecked():

            msg = '항목2'

        else:

            msg = "항목3"

        QMessageBox.about(self'선택된 항목', msg+'선택됨')

 

각 radioButton이 클릭 되었을때 메세지 박스가 실행되게 합니다. 초기에 메세지는 "" 즉 없는거고, 각 버튼을 클릭하면 메세지가 발생하도록 합니다.

 

아래는 실행모습 입니다.

 

 

 

728x90
반응형

댓글