LoginSignup
78
78

More than 1 year has passed since last update.

DearPyGuiをはじめる10行

Last updated at Posted at 2022-01-06

SS 192.png スゴクよさそうなので最初のとっつきだけご紹介

DearPyGuiとは?

DearPyGuiはpythonでグラフィカルなインターフェースを作るためのライブラリです。
DearImGuiというC++用のGUIフレームワークのpython版という位置づけのようです。
GPU対応のため動作も軽快で、アプリケーションやゲームも作れるそうです。
その素晴らしさはgithubを見れば一目瞭然です。

インストール

Python 3.6 以上、64bitの環境で以下を実行します。

pip install dearpygui
or
pip3 install dearpygui

ラズパイへの導入

@PINTO さんがラズパイに導入する方法をシェアされています。
当記事コメント欄のURLよりgithubのissueをご確認ください。

M1 Intel Macへの導入

まだ試していませんが、最近 M1 Intel Mac のconda環境へのインストール成功事例があったようです。

使い方

まず最小限の構成で使い方を紹介します。

dearpyguitest.py
import dearpygui.dearpygui as dpg #ライブラリをdpgの名前でインポート

dpg.create_context() #dearpyguiを使う宣言。必須。
dpg.create_viewport() #viewportという描画スペースの宣言。必須。
dpg.setup_dearpygui() #これも必須。

with dpg.window(label="Window Title"):#描画スペースの中にwindowを作る。
    dpg.add_text("DearPyGui Hello world")#上記windowの中にテキストを表示。

dpg.show_viewport()#viewportを表示。必須。
dpg.start_dearpygui()#DearPyGuiのスタート。必須
dpg.destroy_context()#DearPyGuiのクリンナップ。必須

以下の7行は必ず必要になります。1行でも欠けると動きませんが、逆にこの7行だけでも動きます。
import dearpygui.dearpygui as dpg
dpg.create_context()
dpg.create_viewport()
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

詳細なセットアップ内容をカッコの中に記述することができます。
今回は特に設定していないのでデフォルトとなります。

シェルから実行します。

python3 dearpyguitest.py

実行結果

Screenshot from 2022-01-07 05-12-57.png
デフォルトなのでちょっと雑ですが、こんな感じに表示されます。
外側の大きいウィンドウをviewportというそうですが、そこだけ押さえておけば、公式のドキュメントも読みやすくなると思います。
ウィンドウやその中の要素はHTMLに似た感じでどんどん継ぎ足していけます。

公式のFirstRunにちょい足し解説

今度は公式のFirstRunのスクリプトをすこし改造して、
ウインドウのサイズや位置、テキストの色などを設定してみます。
また、ボタンを押すとコンソールに表示がでるようにもしてみます。

dpg_firstrun.py
import dearpygui.dearpygui as dpg

dpg.create_context() #必須

# ビューポートのタイトルと大きさを指定
dpg.create_viewport(title='This is "viewport"', width=400, height=200) #必須

# ボタンを押したときの動作を定義
def button_callback():
    print("Clicked!")#ターミナルにClicked!と表示する

# 表示するアイテムを設置
with dpg.window(label='This is "window"', width=260, height=150, pos=(60,25)):#windowの大きさと位置を指定
    dpg.add_text("Hello, world", color=[150,200,255])#フォントの色を水色に指定
    dpg.add_input_text(label="input txt", default_value="Quick brown fox") #入力できるテキストボックスを設置
    dpg.add_slider_float(label="slider", default_value=15, max_value=400) #スライドバーを設置
    dpg.add_button(label="Button",  callback=button_callback, pos=[200,120]) #Buttonと書いてあるボタンをwindowの右下に設置
    
dpg.setup_dearpygui() #必須
dpg.show_viewport()   #必須
dpg.start_dearpygui() #必須
dpg.destroy_context() #必須

実行結果

他に、表示する内容を受け取るデータや状況に合わせて更新したい場合には、
dpg.start_dearpygui()を削除し、
dpg.destroy_context()の前に以下の処理を挿入します。

while dpg.is_dearpygui_running():
    # 描画更新に反映させたいスクリプトをここに入れる
    dpg.render_dearpygui_frame()

公式のデモが面白いです

公式サイトの「1.3. Demo」のコードを実行すると、機能満載のデモが見られます。
ボタンやテーブルだけでなくグラフやノードなどを表示する機能もあってオススメです。

M1 Mac やラズパイでも使える!

たぶんつかえないです。ラズパイでも使えません。対応待ち。
ラズパイはコメント欄の @PINTO さんの記事にて可能だそうです!
M1 Intel Macへの導入についても、conda環境にてインストール&実行ができることを手元のM1でも確認できました。
これで主要な環境すべてでDPGが使えるようになったかもしれません。

78
78
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
78
78