2009-07-29 2 views
22

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

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

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

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

Спасибо.

+6

У linux нет системного лотка - возможно, ваш менеджер окон - какой из них вы используете? – 2009-07-29 22:38:06

+0

Да, извините, я использую Xmonad с xmobar. лоток как мой системный лоток. Но я не уверен, почему это относится к моему вопросу? – anderstornvig

+3

(Это не имеет никакого значения, так как спецификация freedesktop. (Это была вся суть его.)) –

ответ

25

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

+0

Спасибо. Я решил Qt. Отличные рамки. – anderstornvig

9

питон-eggtrayicon

вот пример, который приходит с пакетом python-eggtrayicon DEBiAN в 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() 

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

+0

Примечание: в настоящее время не в debian (https://packages.debian.org/python-eggtrayicon, http: // packages.qa.debian.org/gnome-python-extras). – pevik

6

Qt - это кроссплатформенная платформа с поддержкой системного лотка. Его Python bindings тоже неплохие. См. example application для получения дополнительной информации.

1

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

import gtk 

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

gtk.main() 

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

См. Это snippet для более крупного примера.