2. DPG结构概述¶
- DPG应用程序的总体结构如下:
设置
语境
视口
渲染循环
项目
主窗口
2.1. 设置¶
- 所有DPG应用程序必须做3件事:
创建和销毁上下文
创建和显示视区
设置和启动DearPyGui
2.2. 上下文¶
要访问任何DPG命令,必须使用创建上下文 create_context
这应该是第一个DPG命令,通常使用导入来执行此命令。
可以使用以下工具进行适当的DPG清理 destroy_context
。
当需要在一个Python会话中多次启动和停止DPG时,创建和销毁上下文以及设置和启动dearpygui非常有用。
警告
如果 create_context
不是第一个DPG不会启动(并且可能会崩溃)。
2.3. 该视区¶
该视口为 窗户 由操作系统创建。
需要使用显式创建该视区 create_viewport
并使用以下命令显示 show_viewport
代码:
import dearpygui.dearpygui as dpg
dpg.create_context()
with dpg.window(label="Example Window"):
dpg.add_text("Hello, world")
dpg.add_button(label="Save")
dpg.add_input_text(label="string", default_value="Quick brown fox")
dpg.add_slider_float(label="float", default_value=0.273, max_value=1)
dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()
参见
有关该视口中的详细信息 视口
2.4. 渲染循环¶
呈现循环负责显示项、部分维护状态和回调。
呈现循环完全由 start_dearpygui
指挥部。
在某些情况下,有必要显式创建呈现循环,以便您可以调用可能需要运行每一帧的python命令。例如每帧自动收报机或计数器更新功能。
代码:
import dearpygui.dearpygui as dpg
dpg.create_context()
with dpg.window(label="Example Window"):
dpg.add_text("Hello, world")
dpg.add_button(label="Save")
dpg.add_input_text(label="string", default_value="Quick brown fox")
dpg.add_slider_float(label="float", default_value=0.273, max_value=1)
dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
# below replaces, start_dearpygui()
while dpg.is_dearpygui_running():
# insert here any code you would like to run in the render loop
# you can manually stop by using stop_dearpygui()
print("this will run every frame")
dpg.render_dearpygui_frame()
dpg.destroy_context()
警告
手动渲染循环必须在以下情况下创建 setup_dearpygui
参见
有关呈现循环的更多信息 渲染循环
2.5. 项目概述¶
DPG可以分解为 项目 , 用户界面项目 , 货柜
- 项目:
项目是库中的任何东西(即按钮、注册表、窗口等)。
- 用户界面项目:
DPG中具有可视组件(即按钮、列表框、窗口等)的任何项。
- 集装箱:
可以容纳其他物品的物品。(即窗口、组、注册表等)。
2.6. 主窗口¶
DPG可以将一个窗口指定为 主窗口 。主窗口将填充该视口并始终绘制在其他窗口的后面。
代码:
import dearpygui.dearpygui as dpg
dpg.create_context()
with dpg.window(tag="Primary Window"):
dpg.add_text("Hello, world")
dpg.add_button(label="Save")
dpg.add_input_text(label="string", default_value="Quick brown fox")
dpg.add_slider_float(label="float", default_value=0.273, max_value=1)
dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.set_primary_window("Primary Window", True)
dpg.start_dearpygui()
dpg.destroy_context()
参见
有关主窗口的详细信息 主窗口