1. QGroupBox 상단 타이틀과 단축키 (shortcut)를 제공하며, 그 안에 다양한 위젯들을 나타낼 수 있는 위젯 

 

 

2. 예제

  • import sys
    from PyQt5.QtWidgets import (QApplication, QWidget, QGroupBox, QRadioButton
    , QCheckBox, QPushButton, QMenu, QGridLayout, QVBoxLayout)


    class MyApp(QWidget):

        def __init__(self):
            super().__init__()
            self.initUI()


        # 그룹박스 배치 
       def initUI(self):
            grid = QGridLayout()
            grid.addWidget(self.createFirstExclusiveGroup(), 0, 0)
            grid.addWidget(self.createSecondExclusiveGroup(), 1, 0)
            grid.addWidget(self.createNonExclusiveGroup(), 0, 1)
            grid.addWidget(self.createPushButtonGroup(), 1, 1)

            self.setLayout(grid)

            self.setWindowTitle('Box Layout')
            self.setGeometry(300, 300, 480, 320)
            self.show()


       # 라디오버튼을 갖는 그룹박스 생성 
       def createFirstExclusiveGroup(self):
            groupbox = QGroupBox('Exclusive Radio Buttons')

            radio1 = QRadioButton('Radio1')
            radio2 = QRadioButton('Radio2')
            radio3 = QRadioButton('Radio3')
            radio1.setChecked(True)

            vbox = QVBoxLayout()
            vbox.addWidget(radio1)
            vbox.addWidget(radio2)
            vbox.addWidget(radio3)
            groupbox.setLayout(vbox)

            return groupbox


       # 세 개의 라디오버튼과 한 개의 체크박스를 갖는 그룹박스 생성 
       def createSecondExclusiveGroup(self):
            groupbox = QGroupBox('Exclusive Radio Buttons')
            groupbox.setCheckable(True)
            groupbox.setChecked(False)

            radio1 = QRadioButton('Radio1')
            radio2 = QRadioButton('Radio2')
            radio3 = QRadioButton('Radio3')
            radio1.setChecked(True)
            checkbox = QCheckBox('Independent Checkbox')
            checkbox.setChecked(True)

            vbox = QVBoxLayout()
            vbox.addWidget(radio1)
            vbox.addWidget(radio2)
            vbox.addWidget(radio3)
            vbox.addWidget(checkbox)
            vbox.addStretch(1)
            groupbox.setLayout(vbox)

            return groupbox

       # 여러개의 버튼을 갖는 그룹박스 
       def createNonExclusiveGroup(self):
            groupbox = QGroupBox('Non-Exclusive Checkboxes')
            groupbox.setFlat(True)

            checkbox1 = QCheckBox('Checkbox1')
            checkbox2 = QCheckBox('Checkbox2')
            checkbox2.setChecked(True)
            tristatebox = QCheckBox('Tri-state Button')
            tristatebox.setTristate(True)

            vbox = QVBoxLayout()
            vbox.addWidget(checkbox1)
            vbox.addWidget(checkbox2)
            vbox.addWidget(tristatebox)
            vbox.addStretch(1)
            groupbox.setLayout(vbox)

            return groupbox

        def createPushButtonGroup(self):
            groupbox = QGroupBox('Push Buttons')
            groupbox.setCheckable(True)
            groupbox.setChecked(True)

            pushbutton = QPushButton('Normal Button')
            togglebutton = QPushButton('Toggle Button')
            togglebutton.setCheckable(True)
            togglebutton.setChecked(True)
            flatbutton = QPushButton('Flat Button')
            flatbutton.setFlat(True)
            popupbutton = QPushButton('Popup Button')
            menu = QMenu(self)
            menu.addAction('First Item')
            menu.addAction('Second Item')
            menu.addAction('Third Item')
            menu.addAction('Fourth Item')
            popupbutton.setMenu(menu)

            vbox = QVBoxLayout()
            vbox.addWidget(pushbutton)
            vbox.addWidget(togglebutton)
            vbox.addWidget(flatbutton)
            vbox.addWidget(popupbutton)
            vbox.addStretch(1)
            groupbox.setLayout(vbox)

            return groupbox


    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = MyApp()
        sys.exit(app.exec_())

      

 

 

3. 결과

 

'Embedded linux > QT, QML' 카테고리의 다른 글

[QT] QString 프린트 방법  (1) 2024.05.03
[PyQt5] QSlider, QDial  (1) 2023.11.02
[PyQt5] QlineEdit  (0) 2023.11.02
[PyQt5] QRadioButton  (0) 2023.11.02
[PyQt5] QCheckBox  (0) 2023.11.02

+ Recent posts