- Model / View 개념소쩍소쩍이Model/View 구조는 GUI 프로그램에서 데이터 관리와 화면 표시를 분리하는 구조이다.Model데이터를 저장하고 관리하는 역할View데이터를 사용자에게 보여주는 역할중요한 특징View는 데이터를 직접 소유하지 않고Model이 관리하는 데이터를 화면에 표시한다. 재사용 문제이전에 작성했던 QScrollArea, QListWidget, QTextEdit 예제는데이터가 View 내부에 저장되는 구조였다.View 안에 저장된 데이터는 다른 화면에서 쉽게 공유하기 어렵다.QScrollAreaQLabel 등의 자식 위젯 안에 데이터가 저장됨QListWidget항목(Item) 내부에 데이터가 저장됨QTextEdit문서(Document) 내부에 데이터가 저장됨이러한 구조는 화면을 빠르게 만들 수 있지만,같은 데이..
- 2026-06-01 16:11:43
다중 시그널 / 단일 슬롯소쩍소쩍이여러 Signal을 하나의 Slot 함수에 연결할 수 있다.서로 다른 위젯에서 발생한 Signal이라도 전달하는 값의 형태가 같다면 하나의 Slot 함수에서 함께 처리할 수 있다.이번 예제에서는 QSlider와 QDial의 valueChanged(int) Signal을 하나의 Slot 함수에 연결한다.QSlider와 QDialQSlider막대를 움직여 값을 조절하는 위젯QDial다이얼을 돌려 값을 조절하는 위젯valueChanged(int)값이 변경될 때 현재 값을 int 형태로 전달하는 Signal Signal 연결 구조Signal연결되는 Slotself.slider.valueChangedself.update_valueself.dial.valueChangedself.update_value슬라이더와 다이..- 2026-05-26 16:49:41
단일 시그널 / 다중 슬롯소쩍소쩍이Qt의 Signal / Slot 구조에서는 하나의 Signal에 여러 Slot을 연결할 수 있다.하나의 이벤트가 발생했을 때 여러 함수가 동시에 실행되도록 구성할 수 있으며,각 Slot은 서로 다른 화면 요소를 갱신할 수 있다.이번 예제에서는 슬라이더 값을 이용해 Label, ProgressBar, LCDNumber를 동시에 변경한다.사용되는 SignalQSlider.valueChanged(int)슬라이더 값이 변경될 때 발생하는 기본 SignalprocessedValueSignal슬라이더 값을 가공한 뒤 전달하기 위해 만든 사용자 정의 Signal 연결되는 Slotrespond_to_slider(value)원본 값을 Label에 표시하고 처리된 값을 emit()update_progress_bar(val..- 2026-05-26 16:20:25
사용자 정의 시그널소쩍소쩍이사용자 정의 Signal(Custom Signal)실제 프로그램을 만들다 보면 Qt가 기본으로 제공하는 Signal만으로 부족할 때가 있다.예를 들어 슬라이더 값을 그대로 사용하는 것이 아니라 값을 가공한 뒤 다른 함수나 위젯으로 전달하거나,프로그램 내부에서 새로운 이벤트 흐름을 만들고 싶을 때 사용자 정의 Signal을 사용한다. emit()Signal을 실제로 발생시키고 값을 전달할 때 사용하는 메서드self.processedValueSignal.emit(processed_value)위 코드는 processed_value 값을 함께 전달하면서 사용자 정의 Signal을 발생시킨다. 사용자 정의 Signal 선언 방법mysignal = Signal(자료형)Signal 선언 예시Signal() → 값을 ..- 2026-05-26 15:52:48
QSlider 값 전달소쩍소쩍이QSliderQSlider는 슬라이더를 움직여 숫자 값을 조절하는 위젯볼륨 조절, 밝기 조절, 진행률 조절처럼 사용자가 숫자 값을 직접 조절해야 하는 화면에서 자주 사용된다.자주 사용하는 방향 설정Qt.Horizontal → 슬라이더를 가로 방향으로 표시Qt.Vertical → 슬라이더를 세로 방향으로 표시슬라이더 값 설정자주 사용하는 메서드setMinimum() → 슬라이더의 최소값 설정setMaximum() → 슬라이더의 최대값 설정setValue() → 슬라이더의 초기값 설정slider.setMinimum(1)slider.setMaximum(100)slider.setValue(25)위 설정은 최소값 1, 최대값 100 범위에서 시작 값을 25로 지정한 상태이다.valueChanged(int) Sig..- 2026-05-26 15:23:56
Data(값) 전달소쩍소쩍이Signal이 값을 전달하는 경우Signal은 단순히 함수를 실행하는 것뿐만 아니라 값을 함께 전달할 수도 있다.예를 들어 QPushButton의 clicked(bool) Signal은 버튼의 체크 상태를 bool 값(True / False)으로 전달할 수 있다.clicked(bool)버튼이 클릭되었을 때 현재 체크 상태(True / False)를 함께 전달하는 SignalSignal이 전달한 bool 값은 Slot 함수의 매개변수로 받을 수 있다.def button_clicked(data): print("버튼을 클릭하셨네요! 현재 체크 상태 :", data)data 변수에는 Signal이 전달한 True / False 값이 자동으로 들어온다.clicked(bool) 예제import sysfrom ..- 2026-05-26 15:13:51
Signal & Slot 개념소쩍소쩍이PySide6 Signal / Slot 정리Qt에서는 이벤트 처리를 Signal과 Slot 구조로 동작한다.버튼 클릭, 텍스트 입력, 체크박스 선택 같은 이벤트가 발생하면 Signal이 전달되고,연결된 Slot 함수가 실행된다.SignalSignal은 어떤 일이 발생했다는 것을 알려주는 신호주로 클래스 내부에서 정의되며 특정 이벤트가 발생했을 때 자동으로 전달된다.Signal은 함수처럼 보이지만 직접 실행되는 것이 아니라 연결된 Slot을 호출한다.대표적인 Signal 예시clicked → 버튼 클릭 시 발생textChanged → 텍스트가 변경될 때 발생currentChanged → 탭이나 인덱스 변경 시 발생예를 들어 버튼을 클릭하면 clicked Signal이 발생한다.SlotSlot은 Signal..- 2026-05-26 12:41:49
주요 레이아웃소쩍소쩍이PySide6 레이아웃 확장 기능 정리PySide6에서는 단순히 위젯을 배치하는 것뿐 아니라 공간을 어떻게 나눌지까지 제어할 수 있다.대표적으로 Stretch Factor, SpacerItem, SizePolicy를 사용해 레이아웃의 크기와 여백을 조절한다.Stretch FactorStretch Factor는 레이아웃 안의 남는 공간을 각 위젯에게 어떤 비율로 나눠줄지 결정하는 값위젯 자체의 크기를 직접 지정하는 것이 아니라,레이아웃 내부에서 남는 공간을 얼마나 가져갈지를 비율로 정한다.import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QPushButton, QHBoxLayout)class StretchFactor(QWidget..- 2026-05-26 11:50:18
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)