Faites en sorte que sniqt reconnaisse toutes les capacités du plateau (ou créez un indicateur de travail dans Qt)

9

Il y a mon ancien fil de discussion: comment créer un indicateur de travail avec Qt / C ++? où il m'a été suggéré d'utiliser la bibliothèque QSystemTray pour créer une icône de plateau dans Ubuntu pour mon application.

Sniqt est un programme qui s'occupe du reste. Comme on le sait, Ubuntu s'est débarrassé des icônes des plateaux. Au lieu de cela, il utilise désormais des indicateurs et uniquement des indicateurs. Sniqt convertit les icônes du plateau Qt en indicateurs de travail.

Le problème est qu'il ne fait pas une conversion très décente. Les actions comme le simple clic, le clic du milieu, etc. ne fonctionnent pas, alors qu'elles le font dans les systèmes qui prennent en charge les icônes de la barre d'état.

Existe-t-il un moyen de récupérer ces actions? Puis-je utiliser l'icône QSystemTray et avoir toujours ces actions intéressantes (et très utiles, à mon occasion) dans Ubuntu?

Je serais heureux de connaître la réponse à l'autre thread dont j'ai parlé plus tôt (comment créer un indicateur de travail en utilisant les bibliothèques GTK et éviter le plantage).

Lien pour le bogue Sniqt: https://bugs.launchpad.net/sni-qt/+bug/1027652

hytromo
la source
Ce comportement n'est-il pas normal pour tous les indicateurs? Ils n'acceptent que les événements de clic gauche et de défilement.
Timo
Nan! Si vous p. Ex. Cliquez avec le bouton du milieu sur l'icône du son, cela désactivera / réactivera le son. Dans ma candidature, je veux la faire quitter.
hytromo
@mateo_salta, veuillez le comparer avec askubuntu.com/questions/158323/…
hytromo

Réponses:

0

Il semble que Qt ne supporte pas cette chose, au moins sur Ubuntu Unity, même s'il a un signal «activé». Donc je vous recommanderais d'utiliser GTK et un plateau normal, je ne vois pas d'alternative avec Qt. Vous pouvez contacter les développeurs de Qt pour des éclaircissements à ce sujet.

Ceppo93
la source
1
Désolé mais Qt a en effet cette fonctionnalité sur ses icônes de plateau. L'action de mon plateau fonctionne parfaitement dans d'autres systèmes. C'est le problème d'Ubuntu et son entêtement avec les indicateurs. Sniqt pourrait résoudre le problème
hytromo
2
Je peux confirmer que ce n'est pas la faute de Qt. Je doute également que le problème réside dans sniqt. Je ne suis pas conscient que les indicateurs d'application ont même la capacité de différencier les clics gauche et droit. Cela a également été une source constante de frustration pour moi.
Nathan Osman
1

Unity, par choix, ne prend pas en charge ce que vous appelez des "icônes de bac décent". Ce sont des indicateurs ou rien. De là, vous avez plusieurs options:

  • Faites avec les capacités d'indicateur limitées. Vous pouvez définir le menu qui sera utilisé par votre indicateur avec la méthode QSystemTray.setContextMenu () standard.

  • Détachez entièrement votre application du système. Comme dans, transformez-le en une icône flottante sur le bureau, qui pourra accepter les clics du milieu et du bouton droit comme Dieu et Matthias Ettrich le souhaitaient. Vous pouvez trouver un exemple simple de la façon de procéder ici: http://kde-apps.org/content/show.php/KEyes?content=51493 (Facultativement, faites-le uniquement lorsque vous détectez que vous exécutez sous Unity, c'est-à-dire si $ DESKTOP_SESSION est réglé sur 'ubuntu'.)

  • Déclarez Unity non pris en charge. Ce n'est pas une très bonne option.

Le choix de l'option 1 ou 2 dépend principalement de ce que fait votre application.

Balinares
la source