Python - PySide6
8.2 Resource - Qt
8.2 Resource - Qt
2025.12.031. 리소스 사용 예제더보기1. Qt for Python 프로젝트 생성 Qt for Python 프로젝트 생성1. Qt for Python 템플릿으로 프로젝트 생성더보기 2. 실행 테스트더보기basiclike.tistory.com 2. 버튼 2개가 포함된 GUI 구현 3. 리소스 파일 생성 4. prefix 추가 5. 리소스 파일에 이미지 파일 추가 6. alias(별칭) 등록 7. Widget.py 구현from PySide6.QtGui import QIconimport rc_rsc # 실제 프로젝트의 이미지 파일 경로를 복사해서 붙여넣고 비교 self.ui.pushButton.setIcon(QIcon("C:/Dev/qt-pyside6-demo..
8.1 Resource - PyCharm
8.1 Resource - PyCharm
2025.12.031. GUI 프로그램에서 리소스란?더보기1. 프로그램 내부에서 사용하는 외부 파일들의 집합리소스 예시이미지 파일 (PNG, JPG)아이콘 (ICO, SVG)스타일시트(.qss)UI 템플릿(.html, .json 등)소리(.wav, .mp3)글꼴(.ttf)이런 것들을 통칭해서 리소스(Resource) 라고 부릅니다. 2. 왜 리소스가 필요한가? GUI 프로그램에서는 다음이 필요합니다:버튼 아이콘메뉴 아이콘배경 그림로딩 이미지설정 초기값 템플릿 등이걸 파일로 두면 편하지만, 예를 들어 Windows에서 myapp.exe 만 배포하고 싶은데외부에 이미지가 다음처럼 있으면myapp.exeres/ #폴더명 new.png #리소스파일 open.png save.png배포할 때 폴더를 추가로 실행 파일..
8. Resource
8. Resource
2025.12.03
Pycharm /w GitHub
Pycharm /w GitHub
2025.12.031. 파이참에서 Git 사용하기더보기 2. 파이참에서 깃허브 사용하기더보기
6.11 QScrollArea
6.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..
6.10 QTabWidget
6.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) ..
6.9 계산기 구현하기
6.9 계산기 구현하기
2025.12.031. 계산기 예제 준비하기더보기import sysfrom PySide6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QGridLayoutfrom PySide6.QtCore import Qtclass CalculatorWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle("계산기") self.setMinimumSize(336, 541) # [1] 그리드 레이아웃 생성 layout = QGridLayout(self) layout.setSpacing(4) layout.set..
6.8 레이아웃 종합 예제
6.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..
6.7 주요 레이아웃 기능 살펴보기
6.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.6 Nesting Layouts
6.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("빈 레이블에 출력") ..
6.5 QFormLayout
6.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__() ..
6.4 QGridLayout
6.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..