Jak napisać aplikację na tacce systemowej w Linuksie

Jak napisać moją aplikację, aby żyła w tacce systemowej na Linuksie? W rzeczywistości, podobnie jak CheckGmail .

Podobnie jak w przypadku CheckGmail, chciałbym również, aby jakieś wyskakujące okienko pojawiło się po najechaniu kursorem na ikonę w tacce.

Czy jest jakieś API, Klasa czy coś do tego? Wszystko, co udało mi się znaleźć, wydaje się być Dla Windows.

Jeśli mam być specyficzny dla języka, to najlepiej w C / C++, ale rozwiązanie w Pythonie będzie prawdopodobnie również.

Dzięki.
Author: anderstornvig, 2009-07-30

4 answers

Framework Qt zawiera klasę QSystemTrayIcon . Oznacza to, że możesz napisać aplikację w C++ lub Pythonie (lub innym języku z powiązaniami Qt , w tym C#, Ada, Pascal, Perl, PHP i Ruby) i uruchomić aplikację na Windows, Linux, Mac lub innym obsługiwanym systemie operacyjnym Qt. Powinienem dodać, że aplikacje Qt generalnie robią całkiem dobrą robotę wyglądając natywnie na dowolnym systemie operacyjnym, którego używasz bez większego wysiłku (nawet między Gnome/KDE na Linux). Qt ma również doskonałą dokumentację, dużo przykładowego kodu, hojną licencję i jest dobrze utrzymany.

 26
Author: Adam Batkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 11:35:12

Python-eggtrayicon

Oto przykład dołączony do pakietu Debiana {[1] } w 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()

Pokazuje tylko etykietę w obszarze powiadomień . (Poszukaj tego, a prawdopodobnie dostaniesz dużo lepszych hitów...)

 9
Author: Anders Eurenius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-29 22:38:30

Qt jest wieloplatformowy i obsługuje tacę systemową. Jego wiązania Pythona są również całkiem dobre. Więcej informacji można znaleźć w przykładowej aplikacji .

 6
Author: Kaleb Pederson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-07 08:00:51

Z podpowiedzi Pythona spróbuj tego.

import gtk

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

gtk.main()

Powinieneś zobaczyć ikonę w pasku zadań.

Zobacz ten fragment dla większego przykładu.
 1
Author: Neil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-05 09:03:14