반응형
한편 여러개의 라디오버튼 중에 1개만 선택된다고 했는데,
여기서 문제가 있다.
예를 들어 버튼2개중에 1개만 선택, 버튼3개중에 1개만 선택
이렇게 묶고 싶은 경우가 있을 수 있는데
앞의 예시처럼 라디오버튼 5개를 만들면
2개중에 1개선택, 3개중에 1개선택 이렇게 독립적으로 가는게아니라
그냥 버튼 5개중에 1개만 선택 가능하도록 그런식으로 구성된다.
그래서 라디오버튼을 서로다른 별개의 그룹으로 묶는 기능이 필요한데 이 때 사용하는게 group box다.
라디오버튼을 group box 위에 올려놓고 쓰면
해당 group box 안에 들어있는 라디오버튼 끼리만 exclusive하게 동작하게 된다.
groupbox1
라디오1-1 라디오1-2 라디오1-3 <- 3개 중에 한개 선택
groupbox2
라디오2-1 라디오2-2 <- 2개 중에 한개 선택
이런식으로 말이다.
import sys
from PyQt5.QtWidgets import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Test")
self.setGeometry(1000, 200, 700, 700)
# Groupbox1. 여기에 라디오 버튼 3개 올릴 것임
self.gpbox1 = QGroupBox(self)
self.gpbox1.setGeometry(50,100,200,300)
# Groupbox2. 여기에 라디오 버튼 2개 올릴 것임
self.gpbox2 = QGroupBox(self)
self.gpbox2.setGeometry(400,100,200,300)
#라디오버튼 3개, 이것들은 Groupbox1에 올라가고 자기들끼리 exclusive
self.radio11 = QRadioButton("radio1-1",self.gpbox1)
self.radio11.move(0,0)
self.radio12 = QRadioButton("radio1-2",self.gpbox1)
self.radio12.move(0,100)
self.radio13 = QRadioButton("radio1-3",self.gpbox1)
self.radio13.move(0,200)
#라디오버튼 2개, 이것들은 Groupbox2에 올라가고 자기들끼리 exclusive
self.radio21 = QRadioButton("gp2_radio1",self.gpbox2)
self.radio21.move(0,0)
self.radio22 = QRadioButton("gp2_radio2",self.gpbox2)
self.radio22.move(0,100)
if __name__ == "__main__":
app = QApplication(sys.argv)
myWindow = MyWindow()
myWindow.show()
app.exec_()
반응형
'프로그래밍 관련 > PyQt' 카테고리의 다른 글
Pyqt 메뉴 만들기 상위메뉴 (0) | 2022.08.14 |
---|---|
PyQt 라디오버튼 radio button(1) 라디오버튼 기초 개념 (0) | 2022.08.14 |
PyQt. GUI 변경을 외부쓰레드에서하는 것 (0) | 2022.06.15 |
PyQt. 사용자 정의 시그널 (0) | 2022.06.15 |
PyQt. 시그널 슬롯에 대하여 (0) | 2022.06.15 |