如何在wxFrame上设置图标?

问题描述 投票:0回答:4

如何向 wxFrame 添加图标(.ico 文件)?

我正在查看文档,但找不到任何提及

icon
的内容。

谢谢!

wxpython wxwidgets
4个回答
12
投票

凤凰wxpython:

frame.SetIcon(wx.Icon("path/to/app.ico"))

经典wxpython:

frame.SetIcon(wx.IconFromLocation("path/to/app.ico"))

10
投票

我在 py2exe 安装文件中尝试了此设置,但它没有执行任何操作:

windows = [
        {
            "script": "myscript.py",
            "icon_resources": [(1, "icon.ico")]
        }
    ],

但这最终奏效了。 Self 是 wx.Frame 实例:

icon = wx.EmptyIcon()
icon.CopyFromBitmap(wx.Bitmap("icon.ico", wx.BITMAP_TYPE_ANY))
self.SetIcon(icon)

希望这对其他人有帮助。


1
投票

wxWidgets支持平台无关XPM格式,从技术上讲,它是扩展名为.xpm的头文件,包含字符串常量数组,例如

/* XPM */
static const char *icon_xnp1[] = {
/* columns rows colors chars-per-pixel */
"32 32 182 2 ",
"   c black",
".  c #0D0F13",
... };

有在线工具可以创建这种格式,例如 https://de.onlineconvert.com/icon-to-xpm .

图标设置为

wxFrame frame;
...
frame.SetIcon(icon_xnp1))

部署隐式 wxIcon 构造函数

frame.SetIcon(wxIcon(icon_xnp1))) .

0
投票

self.SetIcon("app.ico")
frame.SetIcon(wx.Icon("app.ico"))
在运行代码时肯定可以工作,但是用pyinstaller打包后就不行了。

它在这个视频中的处理方式在可执行文件中有效。您需要像这样打包它:

pyinstaller --icon=name.png --onefile --noconsole app.py

这是来自 Youtube 的代码:

icon = wx.IconLocation(sys.executable, 0)
self.SetIcon(wx.Icon(icon))
© www.soinside.com 2019 - 2024. All rights reserved.