이번 포스트에서는 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이 클릭 되었을때 메세지 박스가 실행되게 합니다. 초기에 메세지는 "" 즉 없는거고, 각 버튼을 클릭하면 메세지가 발생하도록 합니다.
아래는 실행모습 입니다.
'파이썬(Python) > 파이썬 GUI(PyQt5 & tkinter)' 카테고리의 다른 글
PyQt5 - Q Groupbox Widget(그룹박스 위젯) (0) | 2020.12.11 |
---|---|
PyQt5 - QSpinBox(스핀박스) (0) | 2020.12.10 |
PyQt5 - QLineEdit 사용하기 (0) | 2020.12.06 |
PyQt5 - QPushButton, QLabel 만들기 (0) | 2020.12.05 |
PyQt5 - 윈도우화면에 QPushButton 추가하기 (0) | 2020.12.04 |
댓글