或許,這是最強大的一款Python GUI工具

 2020-09-06 12:46:06.0

Python作爲一門腳本語言,現在更多的應用場景是在數據分析、機器學習、後端開發方面,在前端和UI方面的應用相對於JavaScript相對較少。

但是,有時爲了更加容易的理解、修改或者共享工程,往往需要一個用戶界面去控制後端邏輯。

其實,在Python中不乏知名的UI構建工具包,例如,Tkinter,PyQT / PySide,wxPython,Kivy,PySimpleGui。這些工具包都很強大,但是,也非常繁瑣。

開發一個框架要付出的精力和代碼量幾乎和核心邏輯相差無幾,這與Python崇尚的簡單是相悖的。而本文要給大家介紹一款近期在GitHub剛開源不久的一個UI工具包,它在UI構建方面不僅功能豐富,而且非常易於使用,它就是DearPyGui。

DearPyGui是一個易於使用且功能強大的Python GUI框架,它提供了DearImGui的包裝。

它與其他Python GUI框架從根本上存在不同,在後臺DearPyGui使用即時模式範式,這樣能夠實現更加靈活的動態界面。此外,DearPyGui不使用本機窗口小部件,而是使用計算機的GPU繪製窗口小部件,它支持如下平臺:

  • Windows 10
  • macOs
  • Linux

DearPyGui提供與DearImGui相同的方式爲遊戲開發人員提供了一種創建工具的簡單方法,DearPyGui提供了一種簡單的方法爲Python開發人員創建快速而強大的GUI。

安裝

使用DearPyGui需要保障你的Python版本在3.8以上,然後執行下方命令可以安裝DearPyGui:

pip install dearpyguiorpip3 install dearpygui

使用

DearPyGui使用非常簡單,它不需要你像使用其他Python GUI工具那樣,需要長時間的學習、閱讀官方文檔,你只需要一些簡單的命令就可以在UI界面上創建文本按鈕畫布表格輸入框等組件。

先來看一個小例子,

from dearpygui.dearpygui import *add_text("Hello world")add_button("Save", callback="save_callback")add_input_text("string")add_slider_float("float")def save_callback(sender, data):    print("Save Clicked")start_dearpygui()

結果:

從上述代碼可以看出,只需要使用一些簡單的界面就可以添加你想要的組件,沒有複雜的參數配置,也沒有讓人不易理解的代碼邏輯。

圖表

其實,我認爲DearPyGui最值得推薦給大家的就是它支持強大的繪製圖表接口。

繪圖是使用Python過程中經常會用到的一種場景,但是,目前繪圖工具在交互以及與UI的結合方面都不太友好。而DearPyGui把強大的繪圖和靈活的GUI框架融合在一起,你只需要短暫的代碼,就可以在GUI上繪製一種美觀、可交互的圖像:

主題

主題和樣式是DearPyGui的另一個亮點。當前有10種內置主題,後續版本還會加入更多主題。此外,還有一個用於創建您自己的主題的API。

畫布

DearPyGui包含一個繪圖API,可以創建自定義的繪圖、情節,甚至2D遊戲。

佈局

佈局是我認爲DearPyGui相對於其他Python GUI工具最大的亮點之一。

我在使用Tkinter,PyQT / PySide,wxPython,Kivy,PySimpleGui等工具的時候,最令我頭疼的就是佈局,需要耗費大量的時間和精力去排出合適的佈局。

DearPyGui中的佈局系統非常簡單,添加小部件將會按添加順序垂直、對齊放置。另外,也可以使用add_same_line將小部件放置在同一行上。可以使用add_group將小部件分組在一起,併爲更復雜的佈局創建層次結構

from dearpygui.dearpygui import *add_button("Button1")add_button("Button2")add_same_line()add_button("Button3")add_button("Button4")add_button("Button5")add_same_line()add_group("Group1")add_button("Button6")add_button("Button7")end_group()start_dearpygui()

與其他框架集成

DearPyGui這一點可謂是非常良心,如果你對這款框架現有的功能還不滿足。那麼,它集成了其他Python GUI框架,你可以把它與其他框架結合在一起使用,例如,

from dearpygui.dearpygui import *from tkinter import Tk, Label, Button# tkinterroot = Tk()root.title("A simple GUI")root.button = Button(root, text="Press me")root.button.pack()# DearPyGuiadd_slider_float("Slider")add_button("Get Value", callback="button_callback")setup_dearpygui()whileTrue:    render_dearpygui_frame()    root.update()cleanup_dearpygui()

在這個示例中,就把DearPyGui與tkinter結合在一起進行GUI開發。

總結

DearPyGui是一款簡單、開放、靈活的Python GUI框架,無論你是專業的開發人員,或者是滿足日常工作的輕度使用用戶,DearPyGui都可以讓你圍繞它開發並構建一款簡單、提升效率的系統。目前這款框架剛開源不久,但是,我個人認爲非常值得嘗試一下這款框架。

文章來源:知乎