快速简单:trayicon 与 python?
我只需要一个关于如何轻松地将 python 图标放在系统托盘上的快速示例。这意味着:我运行程序,没有显示窗口,只有一个托盘图标(我有一个 png 文件)显示在系统托盘中,当我右键单击它时,会出现一个带有一些选项的菜单(当我单击在一个选项上,运行一个函数)。 这可能吗?我根本不需要任何窗口...
示例/代码片段非常感谢! :D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
对于 Windows 和侏儒
来吧! wxPython 是炸弹。改编自我的 Feed Notifier 应用程序的源代码。
For Windows & Gnome
Here ya go! wxPython is the bomb. Adapted from the source of my Feed Notifier application.
2018版
2018 version
wx.PySimpleApp 已弃用,以下是如何使用 wx.App 代替
我花了一些时间才弄清楚这一点,所以我想我会分享。 wx.PySimpleApp 在 wxPython 2.9 及更高版本中已弃用。这是 FogleBird 的原始脚本,使用 wx.App 代替。
wx.PySimpleApp deprecated, here's how to use wx.App instead
Took me while to figure this out so I thought I'd share. wx.PySimpleApp is deprecated in wxPython 2.9 and beyond. Here's FogleBird's original script using wx.App instead.
如果你能保证windows并且不想引入wx的重度依赖,你可以使用pywin32 扩展。
另请参阅此问题。
If you can guarantee windows and you do not want to introduce the heavy dependencies of wx, you can do this with the pywin32 extensions.
Also see this question.
对于 Ubuntu
跨平台,
请参阅 PyQt:在系统托盘应用程序中显示菜单< /a>
For Ubuntu
Cross-Platform
See PyQt: Show menu in a system tray application
有一个名为 pystray 的包(名字不好,大声说出来),但它的作用就像一个魅力,并且比 wx 或 Qt 更轻量。这些是链接:
https://pystray.readthedocs.io/en/latest/index .html
https://pypi.org/project/pystray/
There is a package called
pystray
(bad name, just say it out loud) but works like a charm and is more lightweight than wx or Qt. These are the links:https://pystray.readthedocs.io/en/latest/index.html
https://pypi.org/project/pystray/
是的。 wiki.wxpython.org 上有一个跨平台示例,我已在 macOS High Sierra (10.13.3)、Windows 7 和 gnome 3/centos7 上使用 python 2.7(minconda 安装)进行了测试。它在这里(忽略页面标题):
https://wiki.wxpython.org/Custom%20Mac%20OsX% 20Dock%20Bar%20Icon
python 3.6需要小mod:
Gnome 3 需要安装 TopIcons Plus。
由于您不想显示窗口(“没有窗口显示,只是一个托盘图标”),只需注释掉以下行(尽管您仍然想保留 wx.Frame 父级)
:使用您自己的 .png 图标,删除 WXPdemo 图像和嵌入图像内容并替换
为,例如
根据我的经验,这将为进一步调整或扩展提供良好的开端。
Yes. There is a cross-platform example on wiki.wxpython.org that I've tested with python 2.7 (minconda install) on macOS High Sierra (10.13.3), Windows 7, and gnome 3/centos7. It is here (ignore the page title):
https://wiki.wxpython.org/Custom%20Mac%20OsX%20Dock%20Bar%20Icon
Small mods are needed for python 3.6:
Gnome 3 required installation of TopIcons Plus.
Since you don't want to have the window display (" no window shows up, just a tray icon"), simply comment out the following line (though you still want to keep the wx.Frame parent):
And since you want to use your own .png icon, remove the WXPdemo image and embeddedimage stuff and replace
with, for example
In my experience, this will provide a good start for adapting or extending further.
如果您尝试在后台运行基于 python 的程序,则另一种选择是可以将其作为服务运行。看看这个活跃状态配方,它非常有用。我相信选项之一是使用 py2exe 或 pyinstall 将应用程序转换为 exe。
http://code.activestate.com/recipes/551780/
An alternative if you are trying to run a python based program in the background you can run it as a service. Check out this active state recipe its pretty useful. I believe one of the options is to convert your application to exe with py2exe or pyinstall.
http://code.activestate.com/recipes/551780/
有关示例,请参阅此线程 -> wx 问题。
wxPython“经典”-> ; [新API] wxPython“凤凰”(Py3)
For an example, refer to this thread -> wx question.
wxPython "classic" -> [new API] wxPython 'Phoenix' (Py3)