Как написать приложение для системного трея в Linux
Как написать мое приложение, чтобы он работал в системном трее в Linux? Фактически, как и CheckGmail.
Как и в случае с CheckGmail, я также хотел бы, чтобы я отображал значок в виде значка.
Есть ли API, класс или что-то еще для этого? Все, что я могу найти, похоже, для Windows.
Если я должен быть специфичным для языка, то желательно в C/С++, но скорее всего это и будет решение в Python.
Спасибо.
Ответы
Ответ 1
Структура Qt содержит класс QSystemTrayIcon. Это означает, что вы можете написать приложение на С++ или Python (или любой другой язык с привязками Qt, включая С#, Ada, Pascal, Perl, PHP и Ruby) и запустить приложение в Windows, Linux, Mac или любой другой поддерживаемой операционной системе Qt. Я должен добавить, что приложения Qt, как правило, неплохо смотрятся на любой операционной системе, которую вы используете без особых усилий (даже между Gnome/KDE в Linux). Qt также имеет отличную документацию, много примеров кода, щедрую лицензию и хорошо поддерживается.
Ответ 2
питон-eggtrayicon
вот пример, который поставляется с пакетом debian python-eggtrayicon
в debian/testing...
#!/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()
Он просто показывает метку в области уведомлений. (Ищите по этому поводу, и вы, вероятно, получите гораздо лучшие хиты...)
Ответ 3
Qt является кросс-платформенным и поддерживает системный трей. Его привязки Python довольно хороши. Подробнее см. пример приложения.
Ответ 4
В командной строке python попробуйте это.
import gtk
icon = gtk.StatusIcon()
icon.set_from_stock(gtk.STOCK_ABOUT)
gtk.main()
Вы должны увидеть значок на панели задач.
Смотрите snippet для более крупного примера.