2013-01-25 18 views
5

Zbudowałem wxWidgets 2.9.3 (na tę chwilę muszę trzymać się tej wersji) pod Ubuntu 12.10 i nie mogę używać klasy wxTaskBarIcon. Próbka dostarczana z wxWidgets kompiluje się i działa, ale sama ikona nie jest wyświetlana na pasku zadań. Sprawdziłem konfigurację i wiem, że kompilacja bibliotek wxWidgets została wykonana z ustawieniem domyślnym (co oznacza "tak" dla obsługi paska zadań).wxTaskBarIcon w Ubuntu 12.10

Każdy pomysł, jak sprawić, by działał? Czy ten problem jest związany z wersją wxWidgets i/lub Ubuntu?

Edycja: Z pewnością nie jest połączona z wersją wxWidgets (sprawdzona pod wx 2.8, 2.9.3, 2.9.4).

Edycja 2: W przypadku, gdy jest to ważne: System jest na VirtualBox 4.2.6, zainstalowany z wszystkimi domyślnymi ustawieniami. Aktualizacje instaluję co najmniej raz w tygodniu.

+0

Być może można zrobić [SSCCE] (http://sscce.org/), aby pokazać nam, co zrobiłeś? –

+0

Który menedżer okien jest używany? Istnieje wiele zastrzeżeń wymienionych na samej górze http://docs.wxwidgets.org/2.8/wx_wxtaskbaricon.html –

+0

@JoachimPileborg Mogę opublikować przykład mojego kodu, ale może to być niepotrzebne, ponieważ domyślna próbka nie działa zarówno. – Rivenris

Odpowiedz

3

Pod Ubuntu od 11.04 pasek zadań jest zarządzany przez Unity, który domyślnie nie pozwala wszystkim programom na umieszczenie ich ikon. Musisz dodać aplikację do białej listy, aby umożliwić jej dostęp do paska zadań. Tu jest miejsce, gdzie znalazłem odpowiedź pierwotnie:

http://ubuntuforums.org/showthread.php?t=1737589

Zasadniczo trzeba zadzwonić.

gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'YOUR_APPLICATION']" 

Następnie zalogować się, zalogować Spowoduje to dodanie YOUR_APPLICATION do białej listy Unity.Panel. Pamiętaj, że w tym przypadku musisz również wcześniej wymienić pozycje, które znajdowały się na tej liście. Można sprawdzić, jak wygląda białej listy przez wywołanie:

gsettings get com.canonical.Unity.Panel systray-whitelist 

w moim przypadku (jak pracuję na środowisko programistyczne) Ja po prostu ustawić go "['all']". Umożliwi to wszystkim aplikacjom dostęp do paska zadań.

Pamiętaj, że Ubuntu zrzuci takie wsparcie, aw przyszłości powinieneś użyć biblioteki AppIndicator, aby osiągnąć ten cel. Oznacza to, że wxTaskBarIcon nie będzie działał nawet z białą listą, chyba że będzie korzystał z biblioteki AppIndicator.

Źródło: http://www.webupd8.org/2013/02/unity-notification-area-systray.html

+1

Czy istnieje powód, dla którego wxWidgets pozostaje w tyle? Z pewnością 'wxTaskBarIcon' powinien otrzymać implementację' Appindicator' – fatuhoku

+0

Mogę tylko zgadywać, że jest to związane z faktem, że wxWidgets jest raczej zorientowany na GTK, a nie na Ubuntu. Może być trudno dopasować 'wxTaskBarIcon' do Ubuntu, szczególnie gdy' AppIndicator' ma znacznie mniej możliwości niż ikona gtk (wydarzenia w show, itp.).Również z mojego doświadczenia "AppIndicator" jest mniej niezawodny, ponieważ znalazłem tam wiele błędów i dziwnych zachowań. – Rivenris