본문 바로가기
프로그래밍 관련/PyQt

PyQt 라디오버튼 radio button(2) group box

by 존버매니아.임베디드 개발자 2022. 8. 14.
반응형

한편 여러개의 라디오버튼 중에 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_()

 

 

반응형