2013-01-25 10 views
5

Ho costruito wxWidgets 2.9.3 (per il momento devo attenermi a questa versione) con Ubuntu 12.10 e non riesco a utilizzare la classe wxTaskBarIcon. L'esempio fornito con wxWidgets è in fase di compilazione ed esecuzione, ma l'icona stessa non viene visualizzata sulla barra delle applicazioni stessa. Ho controllato la mia configurazione, e so che la compilazione delle librerie wxWidgets è stata eseguita con le impostazioni predefinite (che è "sì" per il supporto della barra delle applicazioni).wxTaskBarIcon in Ubuntu 12.10

Qualche idea su come farlo funzionare? Questo problema è correlato con wxWidgets e/o versione di Ubuntu?

Modifica: Non è sicuramente collegato alla versione wxWidgets (selezionata sotto wx 2.8, 2.9.3, 2.9.4).

Modifica 2: In caso di importanza: Il sistema è su VirtualBox 4.2.6, installato con tutte le impostazioni predefinite. Sto installando gli aggiornamenti almeno una volta alla settimana.

+0

Forse si potrebbe fare un [SSCCE] (http://sscce.org/) per mostrarci quello che hai fatto? –

+0

Quale gestore di finestre stai usando? Ci sono un sacco di caveat menzionati nella parte superiore di http://docs.wxwidgets.org/2.8/wx_wxtaskbaricon.html –

+0

@JoachimPileborg Potrei postare il mio esempio di codice, ma potrebbe non essere necessario in quanto l'esempio di default non funziona o. – Rivenris

risposta

3

Sotto Ubuntu dal 11.04 la barra delle applicazioni è gestita da Unity che per impostazione predefinita non consente a tutti i programmi di mettere le loro icone lì. Devi autorizzare la tua applicazione per consentirgli di accedere alla barra delle applicazioni. Qui è dove ho trovato in origine la risposta:

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

In sostanza è necessario chiamare:.

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

Poi disconnettersi, il login questo aggiungerà your_application alla whitelist Unity.Panel. Tieni presente che in questo caso devi anche elencare in anticipo gli elementi che erano in quella lista. È possibile controllare gli sguardi come whitelist chiamando:

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

Nel mio caso (come sto lavorando su ambiente di sviluppo) Ho appena impostato a "['all']". Ciò consentirà a tutte le applicazioni di accedere alla barra delle applicazioni.

Tenete presente che Ubuntu lascerà questo tipo di supporto e in futuro dovreste utilizzare la libreria AppIndicator per raggiungere tale obiettivo. Ciò significa che wxTaskBarIcon non funzionerà nemmeno con la lista bianca a meno che non utilizzi la libreria AppIndicator.

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

+1

C'è un motivo per cui wxWidgets è in ritardo? Sicuramente 'wxTaskBarIcon' dovrebbe ottenere un'implementazione' Appindicator' – fatuhoku

+0

Posso solo supporre che questo sia collegato al fatto che wxWidgets è piuttosto orientato a GTK, non a Ubuntu. Potrebbe essere difficile regolare 'wxTaskBarIcon' su Ubuntu, specialmente quando' AppIndicator' ha meno possibilità dell'icona gtk (eventi in mostra, ecc.).Anche nella mia esperienza 'AppIndicator' è meno affidabile in quanto ho trovato molti bug e strani comportamenti lì. – Rivenris

Problemi correlati