Как написать приложение для системного трея в Linux

Как написать приложение, чтобы оно жило в системном трее Linux? На самом деле, так же, как CheckGmail.

Как и в CheckGmail, я также хотел бы, чтобы какое-то всплывающее окно появилось, когда я наведу значок в трее.

есть ли API, класс или что-то за это? Все, что я могу найти, похоже, для Windows.

Если я должен быть специфичным для языка, то предпочтительно в C / C++, но решение в Python, скорее всего, также делать.

спасибо.

4 ответов


структура Qt содержит QSystemTrayIcon класса. Это означает, что вы можете написать приложение на C++ или Python (или любой другой язык с привязками Qt, включая C#, Ada, Pascal, Perl, PHP и Ruby) и запустите приложение на Windows, Linux, Mac или любой другой поддерживаемой операционной системе Qt. Я должен добавить, что приложения Qt обычно делают довольно хорошую работу по поиску родного языка в любой операционной системе, которую вы используете без особых усилий (даже между Gnome / KDE на Linux). Qt также имеет отличную документацию, много примеров кода, щедрую лицензию и хорошо поддерживается.


python-eggtrayicon

вот пример, который поставляется с пакетом debian python-eggtrayicon в debian/тестирование...

#!/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()

Он просто показывает метку в области уведомлений . (Поиск на этом, и вы, вероятно, получите много лучшие хиты...)


Qt является кросс-платформенной и имеет поддержку системного лотка. Его Python-привязки довольно хорошо, как хорошо. Вижу пример использования для получения дополнительной информации.


из приглашения python попробуйте это.

import gtk

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

gtk.main()

вы должны увидеть значок в системном лотке.

посмотреть этот фрагмент для большего примера.