作为Python程序员,我们编写脚本。 很多时候它们又快又脏。 在完成任务后永远不会被别人甚至自己看见。 但是,在某些情况下,脚本应继续存在,也许会定期进行修改和共享。 在这种情况下,我们经常要为脚本创建一个GUI。 Python有一些选项,包括Tkinter,PyQT / PySide,wxPython,Kivy,PySimpleGui等。 这些都是很好的库,可以满足各自的目的,但是在很多情况下,它们可能会过时,需要与要包装的脚本一样多的代码和思想。 这就是DearPyGui闪耀的地方。 因此,开始之前,您需要获得DearPyGui…
pip3 install dearpygui
from dearpygui.dearpygui import *
add_button("Press Me", callback="callback")
def callback(sender, data):
print("Button Pressed")
start_dearpygui()
简单:添加小部件,然后调用start_dearpygui
DearPyGui很简单,掌握它应该不需要时间。 但是,仅仅因为它简单并不意味着它不强大并且不能创建完整的GUI。
DearPyGui有很多小部件,包括绘图,表格,画布等。您可以在下面看到一些:
与上面的hello world示例类似,大多数小部件都可以在其值更改时设置回调。 您还可以使用get_value检索与小部件关联的值:
from dearpygui.dearpygui import *
add_slider_float("Slider")
add_button("Get Value", callback="button_callback")
def button_callback(sender, data):
print(get_value("Slider"))
start_dearpygui()
DearPyGui中的布局系统非常简单。 添加小部件将它们按添加顺序垂直放置。 但是,您可以使用add_same_line将小部件放置在同一行上。 可供您用来布置GUI的另一个工具是组。 您可以使用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的另一个亮点。 当前有10种内置主题,并且还有更多主题! 还有一个用于创建您自己的主题的API(此系统在不久的将来会被重新设计,因此此处将不涉及)。
亲爱的PyGui实际上可以与其他GUI框架结合使用。 例如,使用tkinter:
from dearpygui.dearpygui import *
from tkinter import Tk, Label, Button
# tkinter
root = Tk()
root.title("A simple GUI")
root.button = Button(root, text="Press me")
root.button.pack()
# DearPyGui
add_slider_float("Slider")
add_button("Get Value", callback="button_callback")
setup_dearpygui()
while True:
render_dearpygui_frame()
root.update()
cleanup_dearpygui()
这只需要用setup_dearpygui,render_dearpygui_frame和cleanup_dearpygui替换start_dearpygui即可公开事件循环。
我试图做一个简单的概述,但是还有很多DearPyGui不适合在这里使用,包括多线程,自定义窗口小部件,调试,动态数据绑定,运行时修改以及列表等等。 我可能决定在另一篇文章中进行介绍。
根据我对DearPyGui的经验,它不仅功能强大,而且不仅从核心开发人员的角度来看,而且从日常用户的日常工作角度来看。 它足够简单,足够开放,允许用户以自己的方式做事并围绕它构建自己的系统。