系统托盘应用程序在其他平台上如何实现?

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

Windows 有一个“系统托盘”,其中包含时钟和始终运行的服务,如 MSN、Steam 等。

我想开发一个 wxPython 托盘应用程序,但我想知道它移植到其他平台的效果如何。 每个平台上的托盘等效项是什么,以及支持 Windows、OSX 和 Linux(特别是哪些 shell 最友好)需要多少手动工作。

python cross-platform operating-system wxpython system-tray
5个回答
6
投票

wx 是一个跨平台的 GUI 和工具库,支持 Win32、Mac OS X、GTK+、X11、Motif、WinCE 等。如果您使用它的类,那么您的应用程序应该可以在所有这些平台上运行。 对于系统托盘,请查看 wxTaskBarIcon (http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html#wxtaskbaricon)。


3
投票

在 OS X 下,您有状态菜单栏 - 最右侧的项目通常是与状态相关的内容(例如电池状态、WiFi 连接等)。

尝试搜索 NSStatusBarNSMenuExtra。 将应用程序变成具有 NSStatusBar 菜单且不会出现在 Dock 中的应用程序几乎是微不足道的。 有教程周围关于如何操作。


2
投票

对于许多 Linux 桌面系统(Gnome、KDE 等),实现了 Freedesktop 的 SysTray 协议。如果任何其他解决方案失败,您可以尝试。


1
投票

在 Linux 上,这确实取决于 - 那里有不同的编程环境,有些窗口管理器甚至没有托盘区域。不过,如果您使用 Gtk(并且 wx 实际上是 Gtk),那么 gtk.StatusIcon 就是您的朋友。

这里是一些示例(尚未检查它们是否确实有效,但应该向您展示路径)。

对于

wx
我找到了一些示例代码here


1
投票

使用 Qt:Qt 系统托盘示例

这将在 Qt 运行且支持此类图标的所有平台上显示系统托盘图标。不过,当不支持系统托盘功能时,您需要制定策略。

© www.soinside.com 2019 - 2024. All rights reserved.