- NestedLayout2026년 05월 26일
- 소쩍소쩍이
- 작성자
- 2026.05.26.:29
Nested Layout 정리
Nested Layout는 레이아웃 안에 또 다른 레이아웃을 넣어 사용하는 방식이다.
즉, 하나의 레이아웃 안에 여러 레이아웃을 조합하여
더 복잡한 UI 구조를 만들 수 있다.예를 들어 세로 레이아웃 안에 가로 레이아웃 여러 개를 넣어서
상단 / 하단 구조를 만드는 방식이 대표적이다.
addWidget() 과 addLayout()
레이아웃 중첩에서 가장 중요한 것은 addWidget() 과 addLayout() 의 차이이다.
addWidget()
→ QPushButton, QLabel 같은 위젯을 추가
addLayout()
→ 다른 레이아웃(QHBoxLayout, QVBoxLayout 등)을 추가
기본 예제
import sys from PySide6.QtWidgets import ( QApplication, QWidget, QPushButton, QVBoxLayout, QHBoxLayout, QLabel ) class NestedLayout(QWidget): def __init__(self): super().__init__() self.setWindowTitle("중첩 레이아웃 예제") self.resize(320, 220) # [0] 제목용 레이블 title_label = QLabel("빈 레이블에 출력") title_label.setStyleSheet( "font-size: 14px; " "font-weight: bold; " "margin: 8px;" ) # [1] 위쪽 가로 레이아웃 top_layout = QHBoxLayout() top_layout.addWidget( QPushButton("위쪽 버튼 1") ) top_layout.addWidget( QPushButton("위쪽 버튼 2") ) # [2] 아래쪽 가로 레이아웃 bottom_layout = QHBoxLayout() bottom_layout.addWidget( QPushButton("아래쪽 버튼 1") ) bottom_layout.addWidget( QPushButton("아래쪽 버튼 2") ) bottom_layout.addWidget( QPushButton("아래쪽 버튼 3") ) # [3] 메인 세로 레이아웃 main_layout = QVBoxLayout(self) main_layout.addWidget(title_label) main_layout.addLayout(top_layout) main_layout.addLayout(bottom_layout) if __name__ == "__main__": app = QApplication(sys.argv) window = NestedLayout() window.show() sys.exit(app.exec())위 코드를 실행하면 아래와 같은 화면이 출력된다.

코드 설명
top_layout = QHBoxLayout()
→ 위쪽 버튼들을 가로로 배치하는 레이아웃 생성
bottom_layout = QHBoxLayout()
→ 아래쪽 버튼들을 가로로 배치하는 레이아웃 생성
main_layout = QVBoxLayout(self)
→ 전체 구조를 세로 방향으로 배치하는 메인 레이아웃 생성
main_layout.addLayout(top_layout)
→ 메인 레이아웃 안에 위쪽 가로 레이아웃 추가
main_layout.addLayout(bottom_layout)
→ 메인 레이아웃 안에 아래쪽 가로 레이아웃 추가'PySide6 > Layout' 카테고리의 다른 글
QScrollArea (0) 2026.05.26 QTabWidget (0) 2026.05.26 QFormLayout (0) 2026.05.26 QGridLayout (0) 2026.05.26 QVBoxLayout (0) 2026.05.26 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)