Python Qt PySide6/10 Proj. Notepad
9.12 문단 정렬
9.12 문단 정렬
2025.12.071. 목표더보기PySide6 QTextEdit 위젯에 다음 네 가지 문단 정렬 기능을 구현하고 연습한다.왼쪽 정렬가운데 정렬오른쪽 정렬양쪽 정렬(Justify)그리고QMenu 의 QAction 과 슬롯 함수 연결 방식 복습Qt.AlignmentFlag 를 이용한 setAlignment 사용 방법 이해 2. 전체 로직더보기# mainwindow.pyfrom PySide6.QtCore import Qt. . .class MainWindow(QMainWindow): def __init__(self, parent=None): . . . self.ui.actionLeft.triggered.connect(self.align_left) self.ui.actio..
9.11 문자 포멧
9.11 문자 포멧
2025.12.071. 목표더보기메뉴 Format 의 Bold, Italic, Underline 액션을 이용해서선택한 문자 또는 커서 위치 이후에 입력되는 문자에굵게, 기울임, 밑줄 스타일을 적용하는 기능을 구현한다.QTextEdit 전체에 폰트를 바꾸는 방식이 아니라QTextCharFormat 과 QFont 를 사용하여선택된 문자 영역에만 서식을 적용하는 방법을 이해한다.현재 상태를 토글 형태로 구현해서Bold 버튼을 한 번 누르면 굵게, 한 번 더 누르면 원래 두께로 돌아가는사용성 좋은 편집 기능을 구현한다.Qt Designer 에서 만든 QAction(actionBold, actionItalic, actionUnderline)을메인 윈도우 슬롯 메서드와 연결하는 패턴을 익힌다.문서 내용은 QTextEdit 내부의 Q..
9.10 편집 기능
9.10 편집 기능
2025.12.071. 목표더보기 편집 메뉴의 다음 기능을 구현한다실행 취소 undo다시 실행 redo잘라내기 cut복사 copy붙여넣기 pastePySide6 의 QTextEdit 가 이미 제공하는 편집 메서드를 활용해복잡한 알고리즘 없이 편집 기능을 구현하는 방법을 익힌다Qt Designer 에서 만든 QAction 과QTextEdit 의 슬롯 메서드를 직접 연결하는 패턴을 익힌다파이썬 문자열 조작 슬라이스 등으로 직접 편집하지 않고Qt 위젯이 제공하는 편집 API 를 사용하는 구조에 익숙해진다 2. 전체 로직더보기# mainwindow.py. . .class MainWindow(QMainWindow): def __init__(self, parent=None): . . . self.ed..
9.9 프로그램 종료
9.9 프로그램 종료
2025.12.071. 목표더보기File 메뉴의 Close 항목과 단축키 Ctrl+Q 를 눌렀을 때 프로그램이 정상적으로 종료되도록 구현한다메인 윈도우를 닫으면 Qt 이벤트 루프가 종료되고, 파이썬 프로세스가 끝나는 흐름을 이해한다Qt Designer 에서 만든 QAction 과 파이썬 슬롯 메서드를 연결하는 패턴을 복습한다이후 단계에서 종료 전에 변경 내용을 저장하는 기능으로 확장할 수 있는 기반을 만든다 2. 전체 로직더보기# mainwindow.py. . .class MainWindow(QMainWindow): def __init__(self, parent=None): . . . self.ui.actionClose.triggered.connect(self.exit_app) ..
9.8 PDF 내보내기
9.8 PDF 내보내기
2025.12.071. 목표더보기현재 QTextEdit 에 작성된 내용을 PDF 파일로 내보내는 기능을 구현한다QPrinter 를 일반 프린터가 아니라 PDF 출력 전용 장치처럼 사용하는 방법을 익힌다파일 저장 경로를 받기 위해 QFileDialog, 확장자 처리를 위해 QFileInfo 를 활용한다파이썬 open 함수로 파일을 쓰지 않고 Qt 출력 시스템을 그대로 사용한다 2. 전체 로직더보기# mainwindow.py. . .class MainWindow(QMainWindow): def __init__(self, parent=None): . . . self.ui.actionExport_PDF.triggered.connect(self.export_pdf) . . ..
9.7 프린트 미리보기
9.7 프린트 미리보기
2025.12.071. 목표더보기메뉴의 Print Preview 또는 툴바 아이콘을 클릭했을 때인쇄하기 전에 미리 화면으로 결과를 확인할 수 있는 기능을 구현한다.QPrinter, QPrintPreviewDialog, paintRequested 시그널과 슬롯 연결 패턴을 익힌다.이미 구현된 프린트 기능(9.6)과 동일한 출력 경로를 사용하되실제 프린터로 보내지 않고 미리보기 창에만 렌더링한다. 2. 전체 로직더보기# mainwindow.py. . .from PySide6.QtPrintSupport import QPrintPreviewDialogclass MainWindow(QMainWindow): def __init__(self, parent=None): . . . self.u..
9.6 프린트
9.6 프린트
2025.12.071. 목표더보기 File 메뉴의 Print 항목이나 툴바 아이콘을 눌렀을 때운영체제의 인쇄 대화상자를 띄우고선택된 프린터로 QTextEdit 의 내용을 출력할 수 있도록 한다.QPrinter, QPrintDialog, QTextEdit.print_ 를 사용하는PySide6 표준 패턴을 익힌다.파이썬 open 같은 기본 파일 함수는 사용하지 않고Qt 가 제공하는 프린트 지원 클래스를 사용한다. 2. 전체 로직더보기# mainwindow.py. . .from PySide6.QtWidgets import QDialogfrom PySide6.QtPrintSupport import QPrinter, QPrintDialogclass MainWindow(QMainWindow): def __init__(self..
9.5 기존 파일 열기
9.5 기존 파일 열기
2025.12.071. 목표 더보기파일 메뉴의 Open 액션을 눌렀을 때파일 선택 대화상자에서 텍스트 파일을 선택하고QFile, QIODevice, QTextStream 으로 파일 내용을 읽어QTextEdit 에 표시한다.파일을 연 뒤에는 current_file 멤버에 경로를 저장하고문서 수정 여부 플래그를 초기화한다. 2. 전체 로직더보기# mainwindow.pyfrom PySide6.QtWidgets import QMainWindow, QFileDialog, QMessageBoxfrom PySide6.QtCore import QFile, QIODevice, QDir, QTextStream, QFileInfofrom ui_form import Ui_MainWindowclass MainWindow(QMainWindow)..
9.4 새 파일 열기
9.4 새 파일 열기
2025.12.071. 목표더보기 새 파일 메뉴를 눌렀을 때현재 문서가 수정되어 있다면 먼저 저장 여부를 묻고취소를 누르면 아무 일도 하지 않고계속 진행을 선택하면 에디터를 깨끗한 새 문서 상태로 초기화한다.저장 기능은 이전 단계에서 구현한 Qt 스타일 파일 저장 함수와(QFile, QIODevice, QDir, QTextStream 기반)인 save_file 을 재사용한다. 2. 전체 로직더보기# mainwindow.py from PySide6.QtWidgets import QMainWindow, QFileDialog, QMessageBoxfrom PySide6.QtCore import QFile, QIODevice, QDir, QTextStream from ui_form import Ui_MainWindow clas..
9.3 파일 저장하기
9.3 파일 저장하기
2025.12.071. 목표더보기메뉴/툴바의 [Save] 메뉴(actionSave) 를 클릭했을 때QFileDialog 로 경로를 선택하고,QFile + QIODevice + QTextStream 을 사용해서QTextEdit 의 내용을 텍스트 파일로 저장한다.Qt 파일 I/O 흐름을 익히고QTextStream 의 기본 인코딩이 UTF-8 이라는 점도 같이 이해한다.성공 / 실패 메시지를 보여준다. 아직은 “현재 파일 이름 기억하기”, “수정됨 표시” 같은 복잡한 부분은 생략하고, “일단 저장이 된다” 에만 집중하는 단계라고 생각하시면 좋습니다. 2. 전체 로직더보기# mainwindow.pyfrom PySide6.QtWidgets import QMainWindow, QFileDialog, QMessageBoxfrom Py..
9.2 GUI - 메뉴 아이콘 구현
9.2 GUI - 메뉴 아이콘 구현
2025.12.071. 리소스 .qrc 적용하고 확인하기더보기메뉴 아이콘 압축파일 메뉴 아이콘 파일을 프로젝트에 옮기고, .qrc 리소스 파일 확인하기 .qrc 리소스 파일 등록하기 Qt 디자이너에서 아이콘 리소스 설정하는 방법 2. File 메뉴에 리소스 적용더보기 3. Format 메뉴에 리소스 적용더보기 4. About 메뉴에 리소스 적용더보기 5. 텍스트 입력창 추가더보기 6. 메뉴 툴바 추가더보기 단계별 완성 파일 더보기
9.1 GUI - 메뉴 구현
9.1 GUI - 메뉴 구현
2025.12.071. 프로젝트 생성더보기프로젝트 생성시, QMainWindow 를 Base Class 로 선택합니다.main.py 를 시작 파일로 설정합니다. Qt for Python 프로젝트 생성 Qt for Python 프로젝트 생성1. Qt for Python 템플릿으로 프로젝트 생성더보기 2. 실행 테스트더보기basiclike.tistory.com Qt for Python 시작 파일 설정 Qt for Python 시작 파일 설정1. Qt for Python 초기 설정더보기1. 현재 상황:qt for python 프로젝트를 실행하면→ main.py가 아니라 widget.py가 시작 파일로 설정되어 있음구조와 유지보수, 교육 측면에서는 main.py를 시작 파일로 두는basiclike.tistory.com ..