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()

参见

有关主窗口的详细信息 主窗口