Existe este viejo hilo mío: ¿Cómo creo un indicador de trabajo con Qt / C ++? donde me sugirieron usar la biblioteca QSystemTray para hacer un icono de bandeja en Ubuntu para mi aplicación.
Sniqt es un programa que se encarga del resto. Como se sabe, Ubuntu se ha librado de los iconos de la bandeja. En cambio, ahora usa indicadores y solo indicadores. Sniqt convierte los iconos de la bandeja Qt en indicadores de trabajo.
El problema es que no hace una conversión muy decente. Las acciones como un solo clic, clic medio, etc. no funcionan, mientras que lo hacen en sistemas que admiten iconos de bandeja.
¿Hay alguna manera de recuperar estas acciones? ¿Puedo usar el ícono QSystemTray y aún tener estas acciones interesantes (y muy útiles, en mi ocasión) en Ubuntu?
También me gustaría saber la respuesta al otro hilo del que hablé anteriormente (cómo hacer un indicador de trabajo usando las bibliotecas GTK y evitar el bloqueo).
Enlace para error de Sniqt: https://bugs.launchpad.net/sni-qt/+bug/1027652
Respuestas:
Parece que Qt no es compatible con esta cosa, al menos en Ubuntu Unity, incluso si tiene una señal 'activada'. Por lo tanto, le recomendaría usar GTK y un icono de bandeja normal, no veo otra alternativa con Qt. Puede ponerse en contacto con los desarrolladores de Qt para aclarar esto.
fuente
sniqt
. No estoy al tanto de que los indicadores de aplicaciones tengan la capacidad de diferenciar entre clics izquierdo y derecho. Esto también ha sido una fuente constante de frustración para mí.Unity, por elección, no admite lo que se refiere como "iconos de bandeja decentes". Son indicadores o nada. Desde allí tienes varias opciones:
Conformarse con las capacidades limitadas del indicador. Puede configurar el menú que utilizará su indicador con el método estándar QSystemTray.setContextMenu ().
Separe su aplicación de la bandeja del sistema por completo. Como en, conviértalo en un icono flotante en el escritorio, que podrá aceptar clics medios y derechos como Dios y Matthias Ettrich pretendían. Puede encontrar un ejemplo simple de cómo hacer esto aquí: http://kde-apps.org/content/show.php/KEyes?content=51493 (Opcionalmente, haga esto solo cuando detecte que se está ejecutando en Unity, es decir, si $ DESKTOP_SESSION está configurado en 'ubuntu'.)
Declarar la unidad sin soporte. Esta no es una muy buena opción.
El que quieras ir con la opción 1 o 2 depende principalmente de lo que haga tu aplicación.
fuente