2013-01-25 13 views
5

Ich baute wxWidgets 2.9.3 (für den Moment muss ich bei dieser Version bleiben) unter Ubuntu 12.10 und ich kann nicht wxTaskBarIcon Klasse verwenden. Das mit wxWidgets gelieferte Beispiel kompiliert und wird ausgeführt, aber das Symbol selbst wird nicht in der Taskleiste angezeigt. Ich habe meine Konfiguration überprüft, und ich weiß, dass die Kompilierung von wxWidgets-Bibliotheken mit der Standardeinstellung ausgeführt wurde (was für die Taskleistenunterstützung "ja" ist).wxTaskBarIcon in Ubuntu 12.10

Irgendeine Idee, wie es funktioniert? Ist dieses Problem mit WxWidgets und/oder Ubuntu-Version verbunden?

Edit: Es ist definitiv nicht mit der wxWidgets-Version verbunden (geprüft unter Wx 2.8, 2.9.3, 2.9.4).

Edit 2: Falls es wichtig ist: System ist auf VirtualBox 4.2.6, installiert mit allen Standardeinstellungen. Ich installiere Updates mindestens einmal pro Woche.

+0

Vielleicht könnten Sie machen ein [SSCCE] (http://sscce.org/) uns zu zeigen, was du getan hast? –

+0

Welchen Window Manager benutzen Sie? Es gibt viele Vorbehalte ganz oben auf http://docs.wxwidgets.org/2.8/wx_wxtaskbaricon.html –

+0

@ JoachimPileborg Ich könnte mein Codebeispiel veröffentlichen, aber es kann unnötig sein, da das Standardbeispiel nicht funktioniert entweder. – Rivenris

Antwort

3

Unter Ubuntu wird seit 11.04 die Taskleiste von Unity verwaltet, die es standardmäßig nicht erlaubt, dass alle Programme ihre Icons dort ablegen. Sie müssen Ihre Anwendung auf die weiße Liste setzen, damit sie auf die Taskleiste zugreifen kann. Hier ist, wo ich die Antwort gefunden ursprünglich:

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

Grundsätzlich Sie anrufen müssen.

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

Dann melden Sie sich, melden Sie sich Dies wird Ihre_Applikation auf die Whitelist Unity.Panel hinzuzufügen. Denken Sie daran, dass Sie in diesem Fall auch Artikel auflisten müssen, die zuvor auf dieser Liste standen. Sie können überprüfen, wie weiße Liste sieht durch den Aufruf:

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

In meinem Fall (wie ich auf Entwicklungsumgebung arbeite) Ich stelle es nur zu "['all']". Dadurch können alle Anwendungen auf die Taskleiste zugreifen.

Bedenken Sie, dass Ubuntu solche Unterstützung fallen lässt und in Zukunft stattdessen die AppIndicator-Bibliothek verwenden sollte, um dieses Ziel zu erreichen. Dies bedeutet, dass wxTaskBarIcon nicht mit der Whitelist funktioniert, es sei denn, es wird die AppIndicator-Bibliothek verwendet.

Quelle: http://www.webupd8.org/2013/02/unity-notification-area-systray.html

+1

Gibt es einen Grund, warum WxWidgets hinterherhinkt? Sicherlich sollte 'wxTaskBarIcon' eine 'Appindicator'-Implementierung bekommen – fatuhoku

+0

Ich kann nur vermuten, dass dies mit Tatsache verbunden ist, dass wxWidgets eher GTK-orientiert ist, nicht Ubuntu. Es kann schwierig sein, 'wxTaskBarIcon' an Ubuntu anzupassen, besonders wenn' AppIndicator' weitaus weniger Möglichkeiten hat als gtk icon (Ereignisse in der Show, etc).Auch meiner Erfahrung nach ist AppIndicator weniger zuverlässig, da ich dort viele Bugs und seltsames Verhalten gefunden habe. – Rivenris

Verwandte Themen