3. PySide6/3-3. Layout
11강. QScrollArea
11강. QScrollArea
2025.12.03다양한 스크롤 UI 위젯(QScrollArea, QListWidget, QTextEdit)을 사용해 보고,이를 하나의 창에서 QTabWidget 으로 탭 구조로 통합해 보기 1. QScrollArea더보기# tab_scroll_area.pyfrom PySide6.QtWidgets import ( QWidget, QVBoxLayout, QScrollArea, QLabel, QPushButton)from PySide6.QtCore import Qtclass ScrollAreaTab(QWidget): def __init__(self, parent=None): super().__init__(parent) layout = QVBoxLayout(self) sel..
10강. QTabWidget
10강. QTabWidget
2025.12.031. QTabWidget 으로 탭이 있는 윈도우 만들기 더보기1. 구현 목표 QTabWidget 으로 탭이 있는 윈도우 만들기QLabel, QLineEdit, QPushButton 을 각각의 탭 내부에 QWidget 으로 구현레이아웃 사용하여 배치하기clicked.connect(...)를 이용해 시그널과 슬롯 연결하기클릭한 버튼 정보를 출력하는 슬롯 함수 2. 프로젝트 구조widget.pymain.py 2.1 기본 윈도우 & QApplication 만들기 from PySide6.QtWidgets import QApplicationfrom widget import Widgetimport sysif __name__ == "__main__": app = QApplication(sys.argv) ..
9강. 계산기 구현하기
9강. 계산기 구현하기
2025.12.030. 학습 목표더보기이번 4.9 단계에서는 PySide6의 QGridLayout을 사용하여 계산기 화면을 구현합니다. 계산기는 여러 개의 버튼을 행과 열에 맞춰 배치해야 하므로,QHBoxLayout이나 QVBoxLayout보다 QGridLayout을 사용하는 것이 자연스럽습니다. 이번 학습에서는(1)먼저 버튼을 직접 하나씩 배치한 뒤, 2차원 리스트와 반복문을 사용해 코드를 개선하고,(2) 마지막으로 덧셈 기능만 구현해 봅니다. 학습 목표내용계산기 화면 구조 이해결과 표시 영역과 여러 줄의 버튼 영역으로 계산기 화면을 나누어 이해합니다.QGridLayout 배치 이해버튼을 row, column 기준으로 배치하는 방법을 이해합니다.span 구조 이해결과 라벨을 4개 열에 걸쳐 배치하는 rowSpan, co..
8강. 레이아웃 종합 예제
8강. 레이아웃 종합 예제
2025.12.031. 실습 예제더보기A. 구현 목표 텍스트 입력창은 넓게 늘어남버튼1은 공간을 가장 많이 차지함(stretch=2 적용)버튼2, 버튼3은 동일한 크기 B. 파일 구조widget.pymain.pyfrom PySide6.QtWidgets import QWidget, QLabel, QHBoxLayout, QVBoxLayout, QSizePolicy, QLineEdit, QPushButtonclass SizePolicyExample(QWidget): def __init__(self): super().__init__() self.setWindowTitle("사이즈 정책(SizePolicy) 및 스트레치 학습") C. SizePolicy(사이즈 정책) C.1 SizePoli..
7강. 주요 레이아웃 기능 살펴보기
7강. 주요 레이아웃 기능 살펴보기
2025.12.021. Stretch Factor 예제: 레이아웃 안의 남는 여유 공간을, 각 위젯에게 “어떤 비율로 나눠줄지” 결정하는 값더보기import sysfrom PySide6.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayoutclass StretchExample(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Stretch Factor 예제") btn1 = QPushButton("버튼 1 (비율 1)") btn2 = QPushButton("버튼 2 (비율 2)") btn3 = QPushButton("버튼 ..
6강. Nesting Layouts
6강. Nesting Layouts
2025.12.021. 레이아웃 중첩(Nesting Layouts): 복잡한 화면은 레이아웃 안에 레이아웃을 또 넣어서 만든다.더보기import sysfrom 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("빈 레이블에 출력") ..
5강. QFormLayout
5강. QFormLayout
2025.12.021. QFormLayout: 라벨 + 입력 필드 폼 레이아웃: “라벨 + 입력 위젯”을 2열 구조로 자동 배치해주는 레이아웃 공식문서더보기위젯 쌍(라벨—위젯) 기반 UI는 대부분 QFormLayout이 가장 깔끔합니다.QFormLayout은 2열 구조(레이블/위젯) 를 손쉽게 만들 수 있고,addRow("이름:", lineEdit) 처럼 문자열 + 위젯 조합도 가능.import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QPushButton, QLineEdit, QFormLayout)class FormExample(QWidget): def __init__(self): super().__init__() ..
4강. QGridLayout
4강. QGridLayout
2025.12.021. QGridLayout: 표(그리드) 레이아웃: 행/열로 위젯을 배치하는 2차원 레이아웃 공식문서더보기import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QPushButton, QGridLayout)class GridExample(QWidget): def __init__(self): super().__init__() b1 = QPushButton("One") b2 = QPushButton("Two") b3 = QPushButton("Three") b4 = QPushButton("Four") b5 = QPushButton("Five") la..
3강. QVBoxLayout
3강. QVBoxLayout
2025.12.021. QVBoxLayout: 세로 방향 레이아웃 공식문서더보기import sysfrom PySide6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayoutclass VBoxExample(QWidget): def __init__(self): super().__init__() btn1 = QPushButton("One") btn2 = QPushButton("Two") btn3 = QPushButton("Three") layout = QVBoxLayout(self) layout.addWidget(btn1) layout.addWidget(btn2) ..
2강. QHBoxLayout
2강. QHBoxLayout
2025.12.021. QHBoxLayout: 가로 방향 레이아웃 공식문서더보기 1.1. 기본 구조 레이아웃에 버튼, 입력창과 같은 요소를 추가(addWidget)하여 구조를 만들고,이 구조를 화면 위젯에 지정(setWidget) 합니다.import sysfrom PySide6.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayoutclass HBoxExample(QWidget): def __init__(self): super().__init__() # 버튼 3개를 생성합니다. (widget에 등록된 상태가 아닙니다.) btn1 = QPushButton("One") btn2 = QPushButton("Two..
1강. 레이아웃 살펴보기
1강. 레이아웃 살펴보기
2025.12.010. 학습 목표더보기이번 단계에서는 PySide6에서 화면 위젯을 배치할 때 사용하는 레이아웃(Layout)의 개념을 학습합니다. GUI 프로그램에서는 버튼, 라벨, 입력창 같은 위젯을 화면에 보기 좋게 배치해야 합니다.이때 위젯의 위치와 크기를 직접 계산해서 배치할 수도 있지만, 창 크기가 바뀌거나 위젯이 추가되면 관리가 어려워집니다. Qt에서는 이런 문제를 해결하기 위해 레이아웃 시스템을 제공합니다.레이아웃은 부모 위젯 안에서 자식 위젯들의 위치와 크기를 자동으로 관리해 주는 구조입니다.학습 목표내용레이아웃 개념 이해Layout이 화면 구성과 위젯 배치를 의미한다는 점을 이해합니다.Qt 레이아웃 관리 이해부모 위젯 안에서 자식 위젯의 위치와 크기를 자동으로 관리하는 구조를 이해합니다.주요 레이아웃 종..
Layout