繁体   English   中英

如何设置Python wxWidgets应用程序窗口的类名?

[英]How Do I Set the Class Name of a Python wxWidgets Application Window?

我需要在Linux(Ubuntu)上设置Python wxWidgets应用程序窗口的类名。 默认情况下,它设置为“ python”。

我尝试在应用程序对象上调用SetAppName()和SetClassName()方法,但这似乎没有任何效果。

基本上,我想做的是将应用程序窗口的类名更改为自定义值,以便将其与开罗码头中的图标相关联。

该应用程序是Pronterface( https://github.com/kliment/Printrun )。

一些更多的细节


基本上现在我在开罗码头上有一个启动器图标,该图标具有适用于Pronterface的正确图标(我可以手动设置该图标)。

问题是当我启动Pronterface开罗扩展坞时,没有将Pronterface窗口与启动器关联。 它将在启动器上创建一个带有该窗口的Python徽标的新图标。

有一个启动器选项,用于输入程序类名称(以及从打开的窗口中获取它的工具),以便Cairo Dock可以识别属于该启动器的窗口。

问题是Pronterface的类名是“ python”,如果我使用它,将导致Pronterface启​​动器与任何wxWidget python应用程序(或可能与任何python UI应用程序)相关联,而不仅与Pronterface窗口相关联。

这就是为什么我要更改类名。

您可能正在寻找wx.App的SetAppName()方法。 另外,也有框架的SetTitle()方法,但我想您已经尝试过了。

编辑:

我在wxPython-dev上问了这个问题,他们让我想起了Windows中的一些东西。 您可能需要使用PyInstaller之类的程序冻结应用程序,以使其正常运行。 另一方面,这就是wxPython的创建者Robin Dunn必须说的:

在X11库应用程序和Windows的最深处,可以分配一个字符串用作类名。 在过去Motif工具包为王的时代,允许用户使用.Xdefaults文件在应用程序中自定义UI元素是很常见的。 就像今天的CSS一样,您可以在其中设置项目的颜色,字体或其他属性。 如果应用程序程序员设置了小部件名称和类名称,则可以为某种特定类型的所有元素(如按钮)或具有特定类名的所有元素设置属性,还可以指定小部件或类(或所有这些)在某个密闭等级中,等等。

XK和Xt库中的所有内容仍然存在,但我不熟悉GTK如何(或是否)公开或利用它。 在旧的wxMotif端口中,wx使用传递给SetName方法的任何东西来设置X小部件名称,但我认为它在wxGTK端口中没有做任何特殊的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM