PyQt5 그룹박스(QGroupBox) 예제Qt/PyQt5 강좌2024. 8. 31. 00:25
Table of Contents
반응형
PyQt5 그룹박스(QGroupBox) 예제입니다.
2024. 8. 29 최초작성
실행 하면 그룹박스 내에 라벨과 두 개의 버튼이 보여집니다. 디폴트로 보이는 그룹박스와 달리 테두리 선이 그레이로 두꺼운 선이고 그룹박스의 제목도 위치가 조정되어 있습니다.
버튼을 클릭하면 해당 문자열이 출력되도록 구현되어 있습니다.
전체 코드입니다.
import sys from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QLabel, QPushButton, QVBoxLayout, QHBoxLayout class ExampleApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 메인 레이아웃 main_layout = QVBoxLayout() # 그룹박스 생성 groupbox = QGroupBox("그룹박스") groupbox.setStyleSheet(""" QGroupBox { border: 2px solid gray; /* 그룹박스의 테두리 선을 2픽셀 굵기의 회색 실선으로 합니다. */ border-radius: 5px; /* 테두리 모서리를 5픽셀 반경으로 둥글게 만들어 줍니다. */ margin-top: 1ex; /* 그룹박스 위쪽 여백 설정. 그룹박스 테두리선에 맞추어 제목이 오도록 합니다. */ } QGroupBox::title { subcontrol-origin: margin; /* 제목의 위치 기준을 margin으로 설정 */ subcontrol-position: top left; /* 제목을 위쪽 왼쪽에 배치합니다. */ padding: 0 5px; /* 제목 텍스트 좌우의 패딩을 5px로 설정합니다. */ left: 10px; /* 제목을 경계상자의 왼쪽 위 모서리에서 오른쪽으로 10픽셀 떨어진 곳에 위치하도록 합니다. */ } """) # 그룹박스에 추가할 것을 우선 레이아웃에 포함시켜야 합니다. group_layout = QVBoxLayout() # 라벨 추가 self.label = QLabel("여기에 텍스트가 표시됩니다.") group_layout.addWidget(self.label) # 버튼 레이아웃 button_layout = QHBoxLayout() # 버튼 추가 button_hello = QPushButton("안녕") button_bye = QPushButton("잘가") button_hello.clicked.connect(self.say_hello) button_bye.clicked.connect(self.say_bye) button_layout.addWidget(button_hello) button_layout.addWidget(button_bye) # 버튼 레이아웃을 그룹 레이아웃에 추가 group_layout.addLayout(button_layout) # 그룹박스에 group_layout을 지정하면 group_layout에 추가되어있는 컴포넌트들이 그룹박스 내에 보입니다. groupbox.setLayout(group_layout) # 메인 레이아웃에 그룹박스 추가 main_layout.addWidget(groupbox) # 윈도우 설정 self.setLayout(main_layout) self.setGeometry(300, 300, 300, 150) self.setWindowTitle('GroupBox Example') self.show() def say_hello(self): self.label.setText("안녕") def say_bye(self): self.label.setText("잘가") if __name__ == '__main__': app = QApplication(sys.argv) ex = ExampleApp() sys.exit(app.exec_()) |
반응형
'Qt > PyQt5 강좌' 카테고리의 다른 글
테이블(QTableWidget)에 콤보박스(QComboBox) 추가하기 (3) | 2024.09.01 |
---|---|
프로그레스 바(QProgressBar)를 제어하는 간단한 PyQt5 예제 (0) | 2024.08.31 |
PyQt5에서 QTableWidget를 마우스로 클릭하여 선택되는 것 방지 (2) | 2024.08.29 |
탭 재생성 시 이전 선택 탭 복원하는 pyQt5 예제 (2) | 2024.08.23 |
pyQt5로 만든 이미지 뷰어 (0) | 2024.08.21 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!