如何在Linux中编写系统托盘的应用程序

时间:2009-07-29 22:31:40

标签: c++ python c linux system-tray

如何编写我的应用程序,以便它将存在于Linux上的系统托盘中?事实上,就像CheckGmail

与CheckGmail一样,当我将鼠标悬停在托盘图标上时,我也会想要显示某种弹出框。

是否有用于执行此操作的API,类或其他内容?我能找到的所有内容似乎都适用于Windows。

如果我必须特定于语言,那么最好是在C / C ++中,但Python中的解决方案很可能也会这样做。

感谢。

4 个答案:

答案 0 :(得分:27)

Qt框架包含QSystemTrayIcon类。这意味着您可以用C ++或Python(或任何其他language with Qt bindings)编写应用程序,包括C#,Ada,Pascal,Perl,PHP和Ruby),并在Windows,Linux,Mac或任何其他受支持的Qt上运行您的应用程序操作系统。我应该补充一点,Qt应用程序通常可以很好地在您使用的任何操作系统上查找本机,而不需要太多努力(即使在Linux上的Gnome / KDE之间)。 Qt还有优秀的文档,大量的示例代码,慷慨的许可证,并且维护良好。

答案 1 :(得分:9)

蟒-eggtrayicon

这是Debian / test中debian包python-eggtrayicon附带的例子......

#!/usr/bin/python
import pygtk
pygtk.require("2.0")
import gtk
import egg.trayicon
t = egg.trayicon.TrayIcon("MyFirstTrayIcon")
t.add(gtk.Label("Hello"))
t.show_all()
gtk.main()

它只是在通知区域中显示标签。 (搜索,你可能会得到很多更好的点击...)

答案 2 :(得分:6)

Qt是跨平台的,并且支持系统托盘。它的Python bindings也很不错。有关详细信息,请参阅example application

答案 3 :(得分:1)

从python提示符试试这个。

import gtk

icon = gtk.StatusIcon()
icon.set_from_stock(gtk.STOCK_ABOUT)

gtk.main()

您应该在系统托盘中看到一个图标。

有关更大的示例,请参阅此snippet