Как написать приложение для системного трея в 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()
вы должны увидеть значок в системном лотке.
посмотреть этот фрагмент для большего примера.