11

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

我想开发一个 wxPython 托盘应用程序,但我想知道这将如何移植到其他平台。每个平台上对应的托盘是多少,以及需要多少手动工作才能支持 Windows、OSX 和 Linux(尤其是哪些 shell 最友好)。

4

5 回答 5

6

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

于 2009-01-07T07:01:31.603 回答
3

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

尝试搜索NSStatusBarNSMenuExtra。将一个应用程序变成一个具有 NSStatusBar 菜单并且不出现在 Dock 中的应用程序几乎是微不足道的。有关于如何做到这一点的教程。

于 2009-01-07T07:34:54.547 回答
2

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

于 2009-01-07T07:00:14.287 回答
1

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

以下是一些示例(尚未检查它们是否真的有效,但应该向您展示路径)。

因为我在这里wx找到了一些示例代码。

于 2009-01-07T06:39:42.193 回答
1

使用 Qt:Qt 系统托盘示例

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

于 2009-01-07T10:12:14.337 回答