본문 바로가기
728x90
반응형

PySide66

PySide6로 이해하기 1편: QMainWindow와 화면 뼈대 잡기 PySide6 UI 코드를 하나씩 이해해보려 한다.PySide6를 처음 보면 위젯 이름이 많이 나온다. QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QSplitter, QTabWidget, QTableWidget 같은 이름이 한꺼번에 등장한다. 처음에는 이것들이 각각 무엇을 하는지보다, 화면이 어떤 순서로 조립되는지 감을 잡는 것이 더 중요하다.이번 글에서는 앱이 켜지는 지점부터 MainWindow가 화면의 큰 뼈대를 만드는 과정까지 살펴본다.PySide6 앱은 어디서 시작될까이 프로젝트의 시작점은 main.py다.import sysfrom PySide6.QtWidgets import QApplicationfrom app.ui.main_window import M.. 2026. 6. 5.
PySide6 리팩토링 5편 : 매핑 UI를 다시 만들어도 선택값 지키기 4편에서는 헤더 적용 흐름에서 컬럼명 정리 규칙을 ExcelService로 옮기고, 헤더 적용 성공 후 화면 갱신을 _apply_header_data()로 묶었다. 그 결과 apply_selected_header()는 “선택한 헤더로 읽기 → 컬럼명 정리 → 화면에 적용”이라는 흐름을 보여주는 메서드가 되었다.이번에는 그 다음 단계인 build_mapping_ui()를 살펴봤다.헤더가 적용되면 프로그램은 원본 데이터의 컬럼을 Darwin Core 필드에 연결할 수 있는 매핑 UI를 만든다. 각 필드마다 설명을 보여주고, 원본 컬럼을 선택할 콤보박스를 만들고, 일부 필드는 직접 입력값도 받을 수 있게 한다. 여기에 자동 매핑과 기존 입력값 복원까지 더해지면서 build_mapping_ui()는 단순한 화면.. 2026. 6. 5.
PySide6 리팩토링 4편 : 헤더 적용과 컬럼명 정리 분리하기 3편에서는 Excel 파일을 처음 불러오는 흐름을 “파일 선택 → 시트 선택 → 원본 읽기 → 화면 반영” 단계로 나눴다. 그 작업을 마친 뒤 다음 리팩토링 후보로 apply_selected_header()를 남겨두었다.사용자가 원본 미리보기에서 헤더 행을 선택하고 버튼을 누르면, 프로그램은 선택한 행을 실제 컬럼명으로 사용해 파일을 다시 읽는다. 기존 메서드는 이 작업뿐 아니라 컬럼명 정리와 화면 갱신까지 모두 직접 처리하고 있었다.이번에는 헤더 적용 흐름에서 데이터 처리와 UI 반영의 경계를 찾아 분리해봤다.기존 apply_selected_header()가 하던 일기존 메서드의 작업을 순서대로 펼치면 다음과 같다.파일과 원본 데이터가 로드되었는지 확인한다.사용자가 헤더 행을 선택했는지 확인한다.선택한.. 2026. 6. 4.
PySide6 리팩토링 3편: Excel 파일 읽기 흐름을 단계별로 나누기 앞선 작업에서는 load_excel() 안에 한꺼번에 들어 있던 상태 초기화와 UI 초기화를 메서드로 분리했다. 코드를 나누고 나니 각각 무엇을 하는지는 이전보다 잘 보였다. 하지만 파일 하나를 불러오는 전체 흐름은 여전히 한 메서드 안에서 여러 단계가 섞여 있었고, 분리한 메서드를 잘못 호출하는 문제도 생겼다.이번에는 메서드 수를 늘리는 것 자체보다, 파일 읽기 흐름을 위에서 아래로 읽을 수 있게 만드는 데 집중했다.2편 이후의 load_excel()파일 업로드 버튼을 누르면 프로그램은 다음 일을 처리해야 한다.파일 선택 창을 연다.선택한 파일의 시트 목록을 읽는다.사용할 시트를 사용자에게 묻는다.헤더가 없는 원본 데이터를 읽는다.이전 파일의 상태와 화면을 초기화한다.새 원본 데이터를 미리보기에 표시한.. 2026. 6. 4.
PySide6 기본 정리: QWidget, Layout, StyleSheet 이해하기 PySide6 기본 정리: QWidget, Layout, StyleSheet 이해하기PySide6로 데스크톱 GUI 프로그램을 만들 때 가장 먼저 만나게 되는 개념은 QWidget, Layout, StyleSheet다.처음에는 버튼, 라벨, 입력창을 화면에 올리는 것만 생각하기 쉽다. 하지만 조금만 기능이 늘어나면 “이 위젯을 어디에 배치할지”, “화면 크기가 바뀌어도 자연스럽게 정렬되게 할지”, “버튼과 테이블의 디자인을 어떻게 통일할지”를 함께 고민하게 된다.이 글에서는 PySide6를 처음 보는 사람도 이해할 수 있도록 다음 세 가지를 중심으로 정리한다.QWidget이 무엇인지화면 배치를 Layout으로 어떻게 구성하는지CSS처럼 보이는 StyleSheet를 어떻게 적용하는지1. PySide6에서 .. 2026. 5. 28.
PySide6 리팩토링 1편: 프로젝트 구조 다시 읽기 처음 만든 파이썬 프로젝트 리팩토링하기 1편: 기능별로 나누지 못했던 코드를 다시 읽기이 프로젝트는 내가 처음으로 만들어본 파이썬 프로젝트에 가깝다. 처음에는 기능을 완성하는 것이 가장 중요했다. 버튼을 만들고, 클릭 이벤트를 연결하고, Excel 파일을 읽고, 결과를 테이블에 보여주는 흐름을 하나씩 붙이다 보니 일단 동작하는 프로그램은 만들 수 있었다.하지만 기능이 늘어날수록 코드가 점점 읽기 어려워졌다. 특히 PySide6로 만든 데스크톱 GUI 프로그램에서는 화면 코드, 버튼 이벤트, 파일 처리, 데이터 변환 로직이 자연스럽게 한 클래스 안으로 모이기 쉬웠다. 그 결과 MainWindow가 앱의 거의 모든 일을 알고 있는 상태가 되었다.이번 글은 “처음부터 잘 나누지 못했던 코드”를 다시 읽으면서,.. 2026. 5. 27.
728x90
반응형