본문 바로가기

python79

[PyQt6] Drawer in QML Drawer는 모바일 등의 UI에서 흔히 볼 수 있는 스와이프를 통해 나오는 메뉴같은 기능입니다. QML로는 이것도 쉽게 만들어낼 수 있어요. 저도 이런 것들 때문에 QtWidgets를 버리고 QtQuick으로 넘어온거긴 합니다. 간단한 예제 하나로 설명 드릴테니 쉽게 이해하실 거에요. 기본 application 작성은 이전 포스팅을 참고해주세요. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick Drawer Example // main.qml import QtQuick import QtQuick.Layouts import QtQuick.Controls import QtQuick.Controls.Material ApplicationWindow {.. 2022. 11. 18.
[PyQt6] QML file in QML file Web 개발 등에 익숙하다면 UI를 구성할 때, 컴포넌트 별로 재사용성 등을 위해 별도의 파일로 구분하여 관리하는 것을 아실 거에요. PyQt를 사용할 때도 UI 코드가 비대해지면 관리가 어렵기도하고, 재사용성도 떨어지다보니 개인적으로 특정 기준으로 파일을 분리해서 사용하고 있습니다. QML에서도 간단하게 이런 방식을 사용할 수 있어 소개해 드리려고 합니다. 기본 Application 작성에 대해서는 이전 포스팅을 참고해주세요. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick QML File in QML File // main.qml import QtQuick import QtQuick.Layouts import QtQuick.Controls .. 2022. 11. 14.
[PyQt6] Menu in QML 이번에는 메뉴 기능에 대해 다뤄보겠습니다. 기본 application 작성은 이전 포스팅을 참고해주세요. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick Create Menu // main.qml import QtQuick import QtQuick.Layouts import QtQuick.Controls import QtQuick.Controls.Material ApplicationWindow { visible: true width: 640 height: 480 title: "Example App" Material.theme: Material.Dark Material.accent: Material.Orange Material.primary: .. 2022. 11. 10.
[PyQt6] QML에서 Tool Bar 만들기 이번에는 간단한 예제와 함께 tool bar를 만들어 보겠습니다. 기본적인 application은 이전 포스팅을 참고해주세요. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick Tool Bar Example // main.qml import QtQuick import QtQuick.Layouts import QtQuick.Controls import QtQuick.Controls.Material ApplicationWindow { visible: true width: 640 height: 480 title: "Example App" Material.theme: Material.Dark Material.accent: Material.Orange A.. 2022. 11. 6.
[PyQt6] Action in QML 이번에는 다양한 활용이 가능한 Action에 대해서 다뤄보겠습니다. 어떤 동작을 수행시킬 때 사용할 수 있어요. 따라서, 메뉴나 툴바 등에서 활용하기 좋은 기능입니다. Application 만드는 골격은 이전 포스팅을 참고해주세요. 여기에서는 QML을 중심으로 다루겠습니다. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick Example with Action // main.qml import QtQuick import QtQuick.Layouts import QtQuick.Controls import QtQuick.Controls.Material ApplicationWindow { visible: true width: 640 height: 480.. 2022. 11. 6.
[PyQt6] Shortcut in QML 개인적으로는 desktop app 만들 때 자주 쓰는 기능 중 하나입니다. QML에서도 간단하게 사용할 수 있어요. 쉬운 예제를 통해 살펴보겠습니다. Application 작성에 대해서는 이전 포스팅을 참고해주세요. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick QML에서 단축키 사용하기 // main.qml import QtQuick import QtQuick.Controls import QtQuick.Controls.Material ApplicationWindow { visible: true width: 640 height: 480 title: "Example App" Material.theme: Material.Dark Material... 2022. 11. 5.
[PyQt6] Data 전달 with QML 이번에는 QML을 사용하여 widget 간의 데이터 전달에 대해 살펴보겠습니다. 기본적인 application을 만드는 방법은 이전 포스팅을 참고해주세요. 2022.11.03 - [Python] - [PyQt6] Getting Started with QtQuick 간단한 예제와 함께 살펴보겠습니다. Widget간의 Data 전달 // main.qml import QtQuick import QtQuick.Controls import QtQuick.Controls.Material ApplicationWindow { visible: true width: 640 height: 480 title: "Example App" Material.theme: Material.Dark Material.accent: Mate.. 2022. 11. 4.
[PyQt6] Getting Started with QtQuick 지금까지는 QtWidgets를 주력으로 사용했었는데, 항상 디자인에 대한 아쉬움이 있었어요. 그래서 계속 다른 것들을 알아봤었는데, electron.js 외에는 마땅한 대안을 찾기가 어렵더라고요. 이제와서 다시 C#쪽으로 가자니 굳이? 싶기도 하고. ㅎㅎㅎ 물론 QtWidgets도 stylesheet를 이용해서 디자인을 할 순 있는데, 우리는 개발자잖아요? 디자이너가 해놓은 것들 그냥 갖다써서 이쁘게만 하면 되는데 안그래도 취미로 하기에 부족한 시간이라 style까지 일일이 작업하는 건 부담이더라고요. 그나마 KivyMD가 괜찮았지만, 뭔가 정도 안가고 불만족스러운 부분들도 있다보니 결국 QtQuick 쪽으로 오게 되더라고요. QML 같은 건 영 프로그램 언어 같지 않아서 개발자로서 호감도가 낮았지만, .. 2022. 11. 3.
[PyQt6] Getting Started with QtWidgets PyQt는 개인적으로 GUI application을 만들때 가장 애용하는 framework입니다. 간단하게 윈도우 생성하는 예제를 만들어 보겠습니다. Install Module $ pip install pyqt6 저는 MAC에서 v3.10.5 버전의 python과 Windows에서 v3.9.6 버전의 python에서 테스트 해보았습니다. 필요한 모듈은 딱 저거 하나입니다. Import Module import sys from PyQt6.QtCore import QSize from PyQt6.QtWidgets import QApplication, QMainWindow 필요한 모듈들은 이게 전부입니다. 개인적으로 *을 사용해 모든 모듈을 불러오기 보단 필요한 모듈만 명시적으로 import하는 것을 선호하여 .. 2022. 11. 2.
[Python] KivyMD - MDTextField 이번에는 사용자의 입력을 받을 수 있는 MDTextField widget에 대해 살펴보겠습니다. MDTextField 가장 기본적인 형태를 먼저 만들어 보겠습니다. from kivymd.app import MDApp from kivymd.uix.screen import MDScreen from kivymd.uix.textfield import MDTextField class MainApp(MDApp): def build(self): self.theme_cls.theme_style = "Dark" self.theme_cls.primary_palette = "Orange" screen = MDScreen() tf1 = MDTextField() screen.add_widget(tf1) return screen.. 2022. 10. 2.
[Python] KivyMD - MDIcon 이번에는 Icon에 대해 살펴보겠습니다. Material Design에서 제공하는 아이콘들을 쉽게 가져다 쓸 수 있어요. 아이콘의 종류와 이름은 아래 링크를 참고해주세요. https://materialdesignicons.com/ MDIcon 기본적인 아이콘 사용법은 다음과 같습니다. from kivymd.app import MDApp from kivymd.uix.boxlayout import MDBoxLayout from kivymd.uix.label import MDIcon class MainApp(MDApp): def build(self): self.theme_cls.theme_style = "Dark" self.theme_cls.primary_palette = "Orange" layout = MD.. 2022. 9. 28.
[Python] KivyMD - MDLabel 이번엔 가장 흔하게 사용되는 label widget에 대해 살펴보겠습니다. 기능이 많아서 모든 기능을 설명하기 보단 많이 쓰일 몇 가지만 보여 드리겠습니다. MDLabel 기본적으로 text property를 사용해서 메세지를 출력할 수 있어요. from kivymd.app import MDApp from kivymd.uix.boxlayout import MDBoxLayout from kivymd.uix.label import MDLabel class MainApp(MDApp): def build(self): self.theme_cls.theme_style = "Dark" self.theme_cls.primary_palette = "Orange" layout = MDBoxLayout(orientation.. 2022. 9. 27.