본문 바로가기

GUI9

1. PyQt5 GUI의 기본 틀부터 시작합시다. 지난 포스팅 2022.11.21 - [기타/PyQt5 한꼬집씩만 따라해보기] - 들어가며 들어가며 PyQt5에 대해 다루는 포스팅이나 강의, 또는 서적이가 국내외에 참 많습니다. 그럼에도 이렇게 저만의 PyQt5 튜토리얼 시리즈를 만드는 이유는 딱 하나입니다. 객체지향 문법이 생소하거나, 파이썬 martinii.fun 이번 포스팅에서는 : PyQt5 GUI의 기본 틀 이번 시간부터 약 50개 튜토리얼 형식의 짧은 포스팅들을 통해 PyQt5를 어느 정도 자유롭게 다룰 수 있고, 여러분이 원하는 GUI를 제작할 수 있도록 도움을 드리고 싶습니다. 인트로에서도 언급드린 바 있지만 이 튜토리얼에서는 객체지향 코드를 최소화하고, 최대한 단순한 절차지향 방식으로 튜토리얼을 진행할 예정입니다. 그렇게 위젯이나 레이아.. 2022. 11. 21.
[PySide6] QLabel을 클릭가능하게!? 지금까지의 내용을 요약하면, 안녕하세요? QLabel에 대한 설명을 간단하게 세 개의 포스팅에 걸쳐서 설명드렸습니다. 지금까지의 골자는, 기본적으로 이미 만들어진 틀(클래스)을 가져다 쓰기만 하면 되기 때문에(사실 그런 예제 밖에 안 보여드렸고...), 어떻게 임포트하고 어떻게 상속해서 어떻게 배치하는지, 이 정도만 알면 Qt GUI를 짜는 데 큰 걸림돌이 없다는 것이었습니다. 그런데... 이번 시간에는 그런데 이번 시간에는 진지하게 나름 상급기술을 하나 짚고 넘어가려고 합니다. 바로 QLabel에 클릭이벤트 붙이기! 전문용어로는, "클릭시그널이 없는 위젯에 클릭시그널 넣기" 정도? 영어로는 깔끔하게 "Making non-clickable widgets clickable"이라고 표현하네요. 조금 다뤄보시.. 2021. 8. 11.
[PySide6]QLabel 사용방법 2/3 지난 시간에 이어, QLabel 관련한 내용을 이어서 설명드리겠습니다. 복습 겸 지난 포스팅을 읽고 오시거나, 아래의 전체코드라도 한 번은 정독하고 포스팅을 읽어주셨으면 합니다. import sys from PySide6.QtCore import Qt from PySide6.QtWidgets import QApplication, QLabel, QMainWindow class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("QLabel 예제") widget = QLabel("= == != Hello World!") font = widget.font() font.setPointSize(30) font.se.. 2021. 7. 11.
[PySide6 GUI] 체크버튼으로 한/글 열고 닫기 시작하며 요즘 아래아한글 자동화로 쏠쏠하게 정부 및 각종 기관의 자문을 수행하고 있습니다. 근데 이게, 저 혼자 실행할 때는 고민하지 않았던 GUI 부분이 아무래도 정부기관 자문을 하게 되니 불가피하게 필요하게 되더군요. "소스코드를 보내줄테니 파이썬과 파이참 깔고 모듈 설치 후 실행해보라"고 할 수도 없는 노릇이고 결국엔 GUI까지 짜서 보내주게 되는데, 그 과정에서 얻은 나름의 노하우도 블로그에 공유하고 싶습니다. 한/글 엑셀 자동화보다 PySIde6 카테고리 조회수가 높다? 제 블로그 카테고리 중 PySide6 관련한 포스팅이 사실 좀 뜸하긴 하지만 나름 조회수를 톡톡히 올려주고 있기는 합니다. 아마 많이들 PyQt5나 PySide2를 써오시다가 최근 PySide6로 갈아타는 분들이 있어서 그런가 .. 2021. 7. 6.
1. PySide6 메모장 만들기 - 위젯 추가하기 우린 지금 어디쯤? 지금 우리는 윈도우10의 기본프로그램 중 하나인 메모장을 PySide6로 클론코딩하는 작업을 진행하고 있습니다. 지난 포스팅에서는 메모장의 틀을 만들고, 메뉴바를 완성했습니다. (아직 메뉴바에 기능을 구현하지는 않은 상태이고요.) 이번 두 번째 포스팅에서는 QtDesigner로 텍스트에디트 위젯을 추가하고 기본적인 기능을 구현하는 과정을 같이 진행해보려고 합니다. 포스팅 관련 궁금한 점은 댓글로 남겨주시면 답변 달아드리겠습니다. QtDesigner 여는 건 익숙해지셨나요? 이번 시간엔 파이참으로 디자이너를 열어봅시다. Alt-F12를 눌러 터미널을 연 후에, "pyside6-designer"라고 입력하고 엔터를 쳐보세요. 지난 번에 완성했던 ui파일을 아래 첨부해 둡니다. 다만, 디자.. 2021. 4. 1.
1. QMainWindow를 소개드리기 전에, QPushButton만 더 설명드리고... QMainWindow를 소개드리기 전에 안녕하세요? 회사원코딩입니다. 최근 튜토리얼에서는 PySide6(Qt)로 창을 생성하는 최소한의 코드를 보여드렸습니다. 1. PySide6에서 가장 기초가 되는 QApplication과 QWidget PySide6에서 가장 기초가 되는 두 가지 클래스, QApplication과 QWidget 안녕하세요? 회사원코딩입니다. 이번 포스팅에서 설명드릴 코드는 가장 단순한 창만들기입니다. 임포트문을 제외하면 네 줄밖에 www.martinii.fun from PySide6.QtWidgets import QApplication, QWidget app = QApplication() window = QWidget() window.show() app.exec_() 위 코드에서는 Q.. 2021. 3. 20.
[4/?] Qt에서의 이벤트루프란 무엇인가? 이벤트루프란 무엇인가? 지난 포스팅에서 QWidget으로 빈 창을 만드는 간단한 예제를 같이 따라해보았습니다. 1. PySide6에서 가장 기초가 되는 QApplication과 QWidget PySide6에서 가장 기초가 되는 두 가지 클래스, QApplication과 QWidget 안녕하세요? 회사원코딩입니다. 이번 포스팅에서 설명드릴 코드는 가장 단순한 창만들기입니다. 임포트문을 제외하면 네 줄밖에 www.martinii.fun 코드설명 중간에 "app.exec_()를 실행하면 이벤트루프가 시작된다"라는 표현을 사용했습니다. 그리고, "이 명령어를 실행하는 시점에서 우리가 만든 GUI 윈도우가 반응하고 움직이기 시작합니다."라고 말씀드렸는데, 이 이벤트루프에 대해서 조금만 자세히 다루고자 이 포스팅을.. 2021. 3. 19.
[2/?] Pythonic에 집착하는 분들을 위한 Pyside6 팁[feat. __feature__] 파이써닉이 아니면 불편한 분들 계시죠? 우선 pythonic이 뭔지 모르시는 분들을 위한 설명부터.. 안녕하세요? 회사원코딩입니다. 파이썬을 공부하다 보면 이런저런 책에서 이야기하는 "파이써닉"이라는 단어가 종종 튀어나옵니다. Qt 포스팅 하다가 무슨 파이써닉을 꺼내냐는 분도 계실텐데, 사실 제가 Qt를 알려드리는 게 아니고, PySide, 특히 PySide6를 알려드리는 튜토리얼이기 때문에 이 말씀을 먼저 드리는 게 좋겠다는 생각이 듭니다. 사실 파이써닉은 대부분의 파이썬 개발자들 사이에 통하는 일종의 "파이썬다움"인 것 같아요. 파이써닉함이 지켜지지 않은 코드를 읽다 보면 어떤 부분에서는 불쾌해지기도 하죠. (오타쿠인가 싶겠지만 아주 사소한 코드나 변수 가지고도 정말 그렇게 되더라고요..) '뭐지, .. 2021. 3. 18.
[1/?] 개발환경과 PySide6 모듈 설치 본문의 GIF(움짤)들은 클릭하기 전에는 초반1초 정도만 반복해서 보여줍니다. 별도로 클릭을 해주셔야만 끝까지 재생이 되는 점 유의하여 주시기 바랍니다. 개발환경과 모듈 설치 개발환경 설치 저는 본 튜토리얼을 진행하면서 모든 코딩을 "파이참"으로 진행할 예정입니다. 가급적이면 VSCode 등 여러분이 익숙한 통합개발환경을 사용하시면 좋겠지만, 딱히 그런 게 없거나, (더욱 그럴 리 없겠지만) 통합개발환경이 뭔지 모르시는 분이라면 젯브레인스 홈페이지에 가셔서 파이참 커뮤니티 버전을 설치하시는 것을 추천드립니다. 이번 포스팅에서는 간략하게 파이참의 기본사용법과 pyside6 모듈을 설치하는 과정까지 진행해보겠습니다. 파이참 커뮤니티버전 다운로드 링크 Thank you for downloading PyChar.. 2021. 3. 17.