标签系统

在DPG中,所有项目都必须具有关联的唯一ID(UUID),该ID可以是整数或字符串。

创建项目时,系统会自动为您生成标签。如果您打算在以后与小部件交互,则有责任存储此标记。

标签允许在运行时修改相关联的项。

import dearpygui.dearpygui as dpg

dpg.create_context()

unique_id = 0 # to be filled out later

def callback():
    print(dpg.get_value(unique_id))

with dpg.window(label="Example"):
    dpg.add_button(label="Press me (print to output)", callback=callback)
    unique_id = dpg.add_input_int(label="Input")

dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

生成的标签

前面的示例也可以通过预先生成标记来处理,如下所示:

import dearpygui.dearpygui as dpg

dpg.create_context()

unique_tag = dpg.generate_uuid()

def callback():
    print(dpg.get_value(unique_tag))

with dpg.window(label="Example"):
    dpg.add_button(label="Press me (print to output)", callback=callback)
    dpg.add_input_int(label="Input", tag=unique_tag)

dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

别名

别名是一个字符串,它代替常规 int 标签。别名可以在任何可以使用UUID的地方使用。用户有责任确保别名是唯一的。

下面是一个简单的例子:

import dearpygui.dearpygui as dpg

dpg.create_context()

def callback():
    print(dpg.get_value("unique_tag"))

with dpg.window(label="Example"):
    dpg.add_button(label="Press me (print to output)", callback=callback)
    dpg.add_input_int(default_value=5, label="Input", tag="unique_tag")

dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

最近的标签

存储最后一项、容器和根的最新标记。

当最后创建的项可能是在运行时创建的,是匿名的,或者有时只是为了方便,这是很有用的。

import dearpygui.dearpygui as dpg

dpg.create_context()

with dpg.window(label="Example"):
    with dpg.group():
        dpg.add_button(label="View the Terminal for item tags")
        print(dpg.last_item())
        print(dpg.last_container())
        print(dpg.last_root())

dpg.create_viewport(title='Custom Title', width=600, height=200)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()