2009-01-07 13 views
11

Windows ma "tacę systemową", w której znajduje się zegar i działające usługi, takie jak MSN, Steam, itp.W jaki sposób można zastosować tacę systemową na innych platformach?

Chciałbym opracować aplikację tacy wxPython, ale zastanawiam się, jak dobrze to przeniesie do inne platformy. Co to jest ekwiwalent zasobnika na każdej platformie i ile pracy ręcznej będzie wymagane do obsługi systemów Windows, OSX i Linux (w szczególności powłoki będą najbardziej przyjazne).

Odpowiedz

1

W Linuksie to naprawdę zależy - masz tam różne środowiska programistyczne, a niektórzy menedżerowie okien nawet nie mają obszaru podajnika. Altho, jeśli używasz Gtk (i wx jest Gtk naprawdę), to gtk.StatusIcon jest twoim przyjacielem.

Here to tylko niektóre przykłady tego (nie sprawdziłem, czy faktycznie działają, ale powinny pokazać Ci ścieżkę).

Dla wx Znalazłem przykładowy kod here.

2

W przypadku wielu systemów operacyjnych Linux (Gnome, KDE itp.) Implementowana jest wersja Freedesktop's SysTray Protocol. Możesz spróbować, jeśli jakiekolwiek inne rozwiązanie zawiedzie.

3

Pod OS X masz pasek Menu Statusu - najczęściej wybierane pozycje są często związane ze stanem (np. Stan baterii, połączenia Wi-Fi itp.).

Spróbuj wyszukać NSStatusBar i NSMenuExtra. Przejście aplikacji na taką, która ma menu NSStatusBar i nie pojawia się w Docku, jest prawie trywialne. Istnieje tutorialsaround, jak to zrobić.

+0

Moja troska polegała na tym, że MSN pojawia się w stacji dokującej i wysyła powiadomienia przez odbijanie. Myślę, że tak powinienem wdrożyć także mój, ponieważ jest to przede wszystkim usługa powiadamiania. – Soviut

+0

Zobacz też Growl, aby uzyskać powiadomienia. To jest super. [http://growl.info]. –

1

użycie Qt: Qt Systray Example

To pokaże ikonkę w zasobniku na wszystkich platformach, które biegnie na Qt i że wsparcie takich ikon. Musisz jednak wymyślić strategię, gdy funkcja systray nie jest obsługiwana.