• 티스토리 홈
  • 프로필사진
    소쩍소쩍이
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
소쩍소쩍이
  • 프로필사진
    소쩍소쩍이
    • 분류 전체보기 (51) N
      • 파이썬 (18)
        • 문제 및 예제 (8)
      • PySide6 (15) N
        • Signal & Slot (6)
        • Layout (8)
        • Model & View (1) N
      • 리눅스 (5)
      • 아두이노 (0)
      • 일지 (11)
  • GitHub
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • NestedLayout
      2026년 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바