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. 결과