Python DearPyGui 常用控件一
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python DearPyGui 常用控件一相关的知识,希望对你有一定的参考价值。
参考技术A菜单栏是一个 GUI 应用中重要的控件,始终显示在窗口顶部,并具有三个主要部分:
菜单可以根据需要嵌套,而且任何控件都可以添加到菜单中,例如下面栗子中的 “控件列表” 菜单。
通过 select_directory_dialog 来调用目录对话框,而且必须为其提供回调方法。 回调方法返回的 data 参数中将包含 目录路径 和 文件夹路径 。通常,目录对话框是由另一个控件(例如下面栗子中的按钮)调用的。
通过 open_file_dialog 可以调用文件对话框,同样,必须为其提供回调方法,回调方法返回的 data 参数中将包含 目录路径 和 文件名称 。 extensions 是文件对话框的可选参数,可以设置对文件扩展名的过滤,控制显示哪些后缀名的文件。
Dear PyGui 具有 simple_plot (简单绘图)和 plot (绘图)两个绘图方式,两者都是动态的。 simple_plot (简单绘图)接受列表参数,并基于列表中的数据数据绘制 y轴 数据,可以是折线图或直方图。
而 plot (绘图)则具有更多的功能,绘图同时使用 x轴 和 y轴 坐标,使用 add_plot 方法创建,然后可以将数据作为线形图或散布图添加, plot (绘图)的特点有:
另外,鼠标停留在绘图上时,会出现数值类型的浮动文本。
通过 set_value 方法可以更改绘图调用的值,使 simple_plot (简单绘图)实现动态实时绘制。
同样的, plot (绘图)也可以动态实时绘制,举个栗子,我们使用 set_render_callback 设置一个渲染回调实现动态绘制。
Dear PyGui 有一个低级绘图 API,可以用来原始绘画、自定义控件甚至动态绘画。先通过调用 add_drawing 方法开始绘画,再通过调用各种绘画方法来添加笔画。需要注意的是,画布的原点位于左下角。
绘画( drawing )具有可以获取和设置的缩放( origin )、原点( origin )和尺寸( size )属性,缩放( origin )是 x 和 y 值的乘数,尺寸( size )以像素为单位。
绘画( drawing )可以显示的图像类型有 .png 、 .jpg 、 .bmp ,使用时需掉用 draw_image 以绘制图像。通过 pmin 和 pmax 参数,我们可以将图像绘制到画布上矩形的左上和右下区域,图像会缩放自动缩放以适应指定区域。
使用 uv_min 和 uv_max 参数,我们可以控制图像要绘制到哪个区域的 标量(scalar) ,默认情况下, uv_min = [0,0] 和 uv_max = [1,1] 将显示整个图像,而 uv_min = [0,0] 和 uv_max = [0.5,0.5] 则仅显示图形的一部分。
尽管我们可以通过清除和重绘整个图来实现图形的动态化,但是 DearPyGui 还提供了一种更有效的方法,要使绘画( drawing )动态化,应该使用 tag 参数标记要重绘的控件,然后,只要使用相同的标签去调用。这样,我们就能实现仅清除该控件,并将其重新绘制。
C ++ MFC:将常用控件分成一组
【中文标题】C ++ MFC:将常用控件分成一组【英文标题】:C++ MFC : Separating common controls into a group 【发布时间】:2014-08-07 15:19:11 【问题描述】:背景
我对 MFC 和 C++ 缺乏经验。
我有一组对话框,它们都有一小部分,包含相同的控件集和极其相似的代码。
我想从所有对话框中分离出一小部分控件,将代码从所有对话框类中移到一个类中。
问题
我不知道该怎么做。我所有的想法似乎都有自己的问题,因为我太缺乏经验了。
我可以创建一个超类,这些对话框继承自它动态地创建控件,给定一个 (x, y) 并连接所有连接并通过虚拟方法传达少数细节? 问题是我不知道具体情况:
超类从哪里继承? (CWnd?CDialog?)
我应该在哪里创建超类中的控件? (OnInit?构造函数?)
在哪里初始化超类的子类? (OnInit?构造函数?)
我只有两个消息映射吗?一个给超类,一个给子类?
还有什么我应该注意的陷阱吗?
【问题讨论】:
您在每个对话框中的常用控件是否具有不同的功能,具体取决于它们出现的对话框还是都执行相同的操作? 他们每个人都做同样的事情。唯一的区别是它们影响的变量。例如,维度会为每个不同的对话框读取不同的变量。 【参考方案1】:您要重用的小部分可以是一个普通的无模式对话框,从 CDialog 派生。您可以使用资源编辑器创建其控件 - 就像任何其他对话框一样 - 因此它们不必动态创建。诀窍是关闭对话框的标题栏样式(在资源编辑器中),因此这部分是一个单独的对话框在视觉上不会很明显。它将与父对话框完全融合。
对于您想要重用此对话框的每个位置,只需创建它并使用 SetWindowPos 将其放置在具有 (x, y) 坐标的父对话框上。
【讨论】:
不要将 WS_CHILD 样式添加到资源中。以上是关于Python DearPyGui 常用控件一的主要内容,如果未能解决你的问题,请参考以下文章