본문 바로가기
Python

[Python] Introduce to DearPyGui

by llHoYall 2021. 2. 11.

그동안 Python GUI 툴로 PyQt5를 사용하고 있었는데, 디자인에 대한 갈증을 계속 느꼈었습니다.

다른 프레임워크나 라이브러리들도 투박하기는 매 한가지고, QtDesigner는 번거롭고 불편해서 차라리 그냥 코딩해서 디자인 해왔었어요.

dearpygui는 알고는 있었는데 크게 흥미가 가지 않아 사용하지 않았다가 얼마전 주말에 심심해서 잠깐 갖고 놀아보니 할만 하더라고요.

 

자료가 워낙 부족해서 삽질을 좀 했네요.

그러고나니 불가능 한 것과 가능한 것, 꼼수로 할 수 있는 것들을 좀 알겠더라고요.

그래서, 퇴근 후 한 두시간씩 틈틈히 삽질해서 간단하게 로또번호 추출기를 한 번 만들어 봤어요.

 

하는 김에 요즘 파이썬 진영에도 점점 확산되고 있는 type hint도 사용해봤고요.

아직 numpykeras같은 곳은 100% 적용되지는 않았지만 계속 적용해 가는 거 같고, 제대로 소개를 하고 있는 곳도 없어서 저도 할 수 있는 만큼만 적용을 해보았는데, 앞으로는 계속 적용 하는 습관을 들이려고요. 의심할 여지가 없이 좋은 기능이니까요.

JavaScript 진영에서 TypeScript가 대세인 것과 같은 이유죠.

다른 사람에게 이 곳은 어떤 형태의 값이 와야 하는 지를 명확히 알려주어 협업 시 확실한 이점이 있어요. 단점은 거의 없다고 봐야죠? ^^

 

 

디자인은 따로 한 게 거의 없어요.

요정도는 기본으로 뽑히더라고요.

색깔 있는 글씨나 공 부분은 canvas 역할을 하는 drawing을 놓고 그려준 거라 보시면 되요.

기본적으로 메인 창 안에 여러 개의 창을 만들어 붙이게 되어 있는데 요렇게 틀에 고정시키는 형태도 가능하고, child windows를 등록하는 형태도 가능해요.

 

 

대부분의 컴포넌트에 callback 함수를 등록할 수 있어서 요렇게 동적인 화면 구성도 가능해요.

여담으로 로또 번호 추출기에 LSTM이? 라고 생각하실 수 있으실텐데...
맞습니다. ㅋㅋㅋ 무작위 추출에 패턴이 어디있겠습니까 ㅋ
딥러닝 공부에 좋은 방법 중 하나가 입출력 shape을 직접 구성해서 해보는 것이라, 구구단 같은 기본 적인 시계열 데이터 외로 로또 번호 갖고도 해봤어요. ^^

 

 

번호 추출 후에는 다시 또 동적으로 화면이 변합니다.

추출된 번호와 만들어진 모델을 저장할 수 있는 버튼이 생겼죠?

 

한 두번 삽질해보면 사용법은 금방 익히실 거에요.

다만 커뮤니티도 제대로 없고 해서 자료 얻기가 굉장히 어렵고 뭔가 부족한 게 있다면 직접 구현하는 게 빠를 거에요.

그래도 한계 내에서 타협을 하면 요정도 퀄리티는 쉽게 만들 수 있어서 목적에 따라 활용하시면 좋을 것 같아요.

전 한동안은 요걸로 갈아타보려고요. ^^

 

몇가지 도움이 될 만한 자료들 공유 드리고 포스팅 마무리를 할게요.

Installation

$ pip install dearpygui

Sample Application

from dearpygui.core import *
from dearpygui.simple import *

def save_callback(sender, data):
    print("Save Clicked")

with window("Example Window"):
    add_text("Hello, world")
    add_button("Save", callback=save_callback)
    add_input_text("string", default_value="Quick brown fox")
    add_slider_float("float", default_value=0.273, max_value=1)

start_dearpygui()

References

Official Site

API Reference

Examples

댓글