视频教程

以下视频教程解释了Dear PyGui的各个方面,下面每个视频都概述了这些方面。第一部分包含核心开发人员的所有视频。第二部分列出了一个由社区制作的很棒的视频。

查看所有 video tutorials on Dear PyGui 由YouTube上的核心开发人员提供。

Introduction to Dear PyGui

亲爱的PyGui是围绕着亲爱的ImGUI的一个扩展的Python包装器。亲爱的ImGUI是用于实时应用程序的即时模式图形用户界面(IMGUI)

虽然亲爱的ImGui在后台使用快速的即时模式,但它向Python开发人员模拟了传统的保留模式图形用户界面,这使得使用它变得很容易。

安装要求:Python3.6及更高版本(仅限64位)

IDE:设置PyCharm,仅需要PIP安装DPG

如何运行内置演示。

更改默认字体类型(OTF或TTF字体)

创建基本窗口

使用主窗口以使窗口与视区的区域相匹配

Basics of callbacks

回调是在对某个小部件执行任何操作时运行的函数。

如果一个小部件支持它,就会有一个叫做回调的关键字,这个关键字可以是任何可调用的。

使用回调时,关键字不应以圆括号结尾,例如()。使用回调的正确方法是:ADD_BUTTON(“Press Me”,Callback=func_name)。在不使用()的情况下调用函数func_name。

回调总是传输两个 变量 到回调函数,例如发送者和数据。

发送方是小部件的名称。默认情况下,数据为None,但可以使用以下命令发送其他数据:CALLBACK_DATA=‘Extra Data’。

本教程展示了浮动滑块的回调的用法。

在整个教程中,演示了内置记录器和文档的使用。

可以在运行时使用Set_Item_Callback更改回调。

ID system and debug tool

小部件的第一个参数是ID。

如果未提供标签,则标签默认为ID。

小部件需要唯一的ID,但可以共享相同的标签。有两种方法可以实现这一点。

方法一:ADD_INPUT_FLOAT(‘Float1’,Label=‘Float1’)和ADD_INPUT_FLOAT(‘Float2’,Label=‘Float1’)

方法2:ADD_INPUT_FLOAT(‘Float1##1’)和ADD_INPUT_FLOAT(‘Float1##2’)

ID用于从小部件中检索数据。

通过键入show_debug()启动调试工具

调试工具在Tab命令下列出所有可用命令

您可以使用调试工具在运行时执行代码。

通过LOG_DEBUG(GET_VALUE(‘Float1##1’)跟踪浮点值)

Parent stack system

父栈是图形用户界面中所有容器的集合。

窗口是根项目,这意味着它不能有父级,也不需要查看父级堆栈。窗户也是一个容器。因为它是一个容器,所以会将一个窗口添加到父堆栈。

当项不是根项时,它需要父项。每个选项卡栏都会添加到父堆栈和容器中。选项卡栏本身也是一个容器。选项卡是选项卡栏的子项,但它也是一个容器。

当添加父项的第二项时,有必要从父栈中移除第一项,例如弹出它,以便第二项成为包含父项的一部分,而不是其兄弟项。

核心模块中的end()命令从父栈中弹出一个项。

复选框或(单选)按钮是容器的一部分,而不是容器本身。

Simple模块添加上下文管理器(例如‘With Window’)。这个 with 上下文管理器的语句自动化了end()语句的应用,使代码更易于阅读。

Value Storage System

在许多图形用户界面中,小部件的值存储在小部件中。

在Dear PyGui中,每个小部件的键-值对存储在值存储系统中。键-值对跟踪值的类型和值本身。小部件的值可以通过小部件(由用户)和程序来检索和更改。

每个小部件都有一个关键字源,默认情况下它等于小部件的名称。如果您指定了源,小部件将使用该键来查找和更改值存储系统中的值。这允许多个小部件操作单个值。

如果多个小部件引用同一关键字,则类型和大小必须相同。

如果在单个键-值对上使用多个不同类型或大小的小部件,请使用ADD_VALUE预先添加值。

给出了一个代码示例,说明了值存储系统及其类型和大小。

Widget basics

本教程将介绍如何使用多种小部件类型。小部件类型包括BUTTON、CHECKBOX、LABEL_TEXT、INPUT_INT、Drag_INT、Radio_BUTTON、COMBO、LISTBOX和PROCESS_BAR小部件。

小部件的回调关键字的用法如下所示。例如,Add_Button(‘Press Me’,CALLBACK=CALLBACK_Function)。

无论何时按下该按钮,都会调用Callback_Function。回调总是向CALLBACK_Function发送两个参数:sender和data。发送方是小部件的名称。除非小部件有数据要发送或在代码中指定,否则‘data’参数通常为空。尽管如此,参数‘data’总是被包括在内。

讨论了多个窗口小部件特定关键字的使用。

本文演示了如何通过使用set_value(...)的Drag_int滑块控制进度条小部件。和CONFigure_Item(...)

许多小部件也具有多组件版本。

Widget和多组件Widget的更复杂使用将在未来的视频中展示。

Tab bar, tabs, and tab button basics

使用简单模块中的上下文管理器创建选项卡栏,例如,使用AB_bar(‘tb1’)-->使用Tab(‘t1’)-->Add_Button(‘b1’)。

您可以使用WITH TAB_BAR(‘tb1’,CALLBACK=回调)将回调添加到TAB_BAR。

您可以使用ADD_TAB_BUTTON(‘+’)将按钮添加到标签栏中。

通过在TAB_BAR上使用关键字reorderable=True,可以使选项卡栏中的选项卡可重新排序。

Simple Plot & Tooltip

简单的情节 用于绘制简单数据。这不能与更强大和更复杂的 地块

使用ADD_SIMPLE_PLOT(“PLOT 1”,VALUE= [1、4.3、8、9、3] ,直方图=真)。有几个关键字可以定制情节。

ADD_TEXT(“Hover Me”,Tip=“A Simple Tool Tip”)。这个简单的工具提示仅适用于文本。这个 工具提示 是更强大的。

工具提示小部件是一个容器,即上下文管理器,就像‘with Window’和‘with group’一样。小部件基本上充当另一个窗口,因此它可以包含任何其他小部件,如图形。视频中的示例展示了如何通过两行代码在工具提示中嵌入一个简单的绘图。

请注意,用户不能与工具提示小部件交互。

Popups

弹出窗口 需要一位家长。这一点可能会在未来版本的《亲爱的派吉》中发生改变。

Popup是一个容器,因此它有一个上下文管理器(带有Popup:)。

Popup是唯一名称不是第一个参数的小部件。

默认情况下,弹出窗口设置为单击鼠标右键。要更改为左击,请添加关键字MouseButton=mvMouseButtonLeft。

弹出窗口是一个容器,可以包含任何其他小工具,即绘图。

Modal关键字使其他所有内容灰显,以引起人们对弹出窗口的注意。

要关闭模式弹出窗口,需要添加一个带有回调CLOSE_POPUP(“opup1”)的按钮。

Experimental Windows Docking

停靠功能使用户能够将窗口停靠到彼此和视区。

对接功能尚未记录在案(截至2021年1月)。

ENABLE_DOCKING()将启用实验性停靠。

默认情况下,用户需要按住Shift键才能启用停靠。

关键字SHIFT_ONLY=FALSE可在不按住Shift键的情况下启用停靠。

关键字dock_space=True可将窗口停靠到视区。

停靠功能是实验性的,因为您不能以编程方式设置停靠位置。

当该功能从实验阶段出来时,它也可以作为布局工具使用,但它仍然需要大量的工作才能作为非实验阶段发布。

Smart tables

这是一个关于创建智能交互桌子的详细教程。

该表是使用MANAGED_COLUMNS创建的。

表中使用的微件包括Add_Text、Add_Input_Text和Add_Input_Float

创建工作示例后,代码被重构为带有Header、ROW和GET_CELL_DATA方法的SmartTable类。

可以通过在标签名称的开头使用##来隐藏小工具的标签,例如,添加_输入_文本(‘##INPUT_TEXT_1’),其中INPUT_TEXT_1不显示在图形用户界面中。

使用Add_Separator()更改小部件的水平间距。

使用内置的亲爱的Pygui调试器和记录器来解决编码问题。

社区视频

Creating a complete Python app with Dear PyGui

了解如何一步一步地创建功能齐全的Python应用程序!在这个项目中,我们将使用全新的Dear PyGui库构建一个图形用户界面!我们将此接口连接到一个简单的短信垃圾邮件过滤器,它是我们在以前的项目中一起构建的。我们将学习如何显示图像、文本、用户输入、按钮和分隔符,以及隐藏小部件和“单击”事件回调函数。