DearPyGui 教程(一)

(注:由于DearPyGui正处于快速迭代期,功能日兴月易,本文所描述的内容很有可能已经过时,如需了解最新信息,请至源文链接:https://hoffstadt.github.io/DearPyGui/tutorial.html)
DearPyGui是一个易于使用且功能强大的Python GUI框架,它在UI构建方面不仅功能丰富,而且非常易于使用。本教程旨在演示如何使用DearPyGui的一部分特性,并未覆盖DearPyGui的全部功能,更多复杂功能的示例可以在GitHub上的示例文件夹中看到. 有关特定API的信息建议参考 API Reference.

安装DearPyGui模块

首先需要确保你的Python版本在3.8以上,然后执行下方命令可以安装DearPyGui:

pip install dearpygui

或者

pip3 install dearpygui

DearPyGui 由viewport, window和widget组成,其中viewport 是程序的主窗口,通过在主python脚本的尾部调用函数 start_dearpygui() 创建。
下面是一个使用内建文档功能的例子:

from dearpygui.dearpygui import *

set_main_window_size(800, 800)
show_about()
show_documentation()

start_dearpygui()

效果如下:Loger效果

开发工具

DearPyGui 包含了几个非常有用的开发工具,本教程将介绍如何使用这些工具.
show_source() 可以用来展示代码,需要输入python文件名,如下所示使用的文件名为"main.py",你需要改成你自己的文件名。

from dearpygui.core import *

show_documentation()
show_debug()
show_about()
show_metrics()
show_source("main.py") #replace"main.py" with your python file name
show_logger()

start_dearpygui()

效果如下:
show_source效果

Widget, Container, 和 Window

Widget小部件可分为:

  • 常规widget (如:input 和 display)
  • 容器widget (如:window, group, popup, 等)

Widget小部件通过各自的"add_***“命令来添加.
每个widget小部件必须有一个唯一的名称,如果您希望多个小部件以相同的名称出现在屏幕上,则必须在显示的名称后面放置一个”##",以使小部件名称保持唯一,格式是: “displayed_name##unique_part”
没有名称参数的Widget小部件其名称是自动生成。 (如:same_line(), spacing())

from dearpygui.core import *

add_button("Apply##1")
add_button("Apply##applier")
add_same_line(spacing=10)
add_button("Apply##2")
add_spacing(count=5)
add_button("Apply##3")

start_dearpygui()

效果如下:
在这里插入图片描述
容器widget小部件用于保存其他widget小部件,通过使用其“add”函数开始容器,然后使用其“end”函数完成容器来实现。
当容器widget小部件被“add”时,它们会被弹出到父栈中。 之后添加的任何小部件都将加到父栈顶部。 当容器widget小部件“end”时,它们将从父栈中弹出。

from dearpygui.core import *

add_text("This is some text on the MainWindow")

add_window("window 2")
add_text("This is some text on window 2")
end()

add_text("More text on the MainWindow")

start_dearpygui()

效果如下:
text和window效果
Widget小部件也可以通过指定它们的“父”容器而不按顺序添加,或添一个“before”指定要放在某个特定widget小部件前,如下所示:

from dearpygui.core import *

add_text("First coded widget") #this is a display widget

add_text("This is some text on window 2", parent="window 2")

add_window("window 2") #this is a group widget
add_checkbox("Checkbox") #this is a input widget
end()

add_checkbox("Last coded widget", parent="MainWindow", before="First coded widget")

start_dearpygui()

效果如下:
容器效果
每个输入小部件都有一个值,可以在创建时用"default_value"关键字设定,也可以在运行时调用set_value()get_value() 设置,如下所示:

from dearpygui.core import *

add_checkbox("Radio Button", default_value=False)
print("First value of the Radio Button is: ", get_value("Radio Button"))
set_value("Radio Button", True)
print("Value after setting the Radio Button is: ", get_value("Radio Button"))

start_dearpygui()

Callback回调

每个输入widget小部件都有一个回调(callback),当和widget小部件交互时,其回调将被激活(callback)。
回调(callback)用于为小部件提供功能。几乎每个DearPyGui的小部件都可以使用回调(callback)。 回调(callback)可以在小部件创建时指定,也可以在创建后指定,如下面的代码所示。
在DearPyGui,每个回调(callback)函数都必须包含"sender"和"data"参数。
DearPyGui用参数"sender" 来通知回调(callback)函数是谁触发了回调,使用"data"参数发送额外数据。

from dearpygui.core import *

def button_callback(sender, data):
    print(sender)
    print(data)

add_button("Apply", callback=button_callback, callback_data="Hello World!")
add_button("Submit Data")
set_item_callback("Submit Data", callback=button_callback, callback_data="Hello World!")

start_dearpygui()

Window类型的widget小部件具有特殊的回调函数,这些回调是在诸如窗口的呈现、调整大小、关闭等事件上触发的。这些特定的回调函数可以通过命令 set_render_callback()set_resize_callback() 应用于任何窗口类型widget小部件,默认情况下,这些函数会将回调应用于主窗口(“MainWindow”)。
适用于窗口渲染和调整大小回调函数的应用如下:

  • MainWindow
  • Window
  • Child
  • Popup

在窗口关闭时运行的回调函数是专门给window widget小部件用的,通过向“on_close”关键字参数指定回调函数来使用。

from dearpygui.core import *

add_window("close me", on_close="close_callback")
add_text("close this window")
end()

def close_callback(sender, data):
    print(sender + " has been closed")

start_dearpygui()
  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值