J'aide avec le support de Windows pour une application PyGTK qui apparaît comme une applet de barre d'état système, mais je ne suis pas si forte sur le GTK + gluant ... des trucsObtenir la position du gtk.StatusIcon sur Windows
Nous avons Lorsque vous cliquez sur l'icône de la barre des tâches, la fenêtre apparaît à côté de l'icône de votre barre d'état, et sur Linux, cela fonctionne très bien, en utilisant les résultats de gtk.StatusIcon.get_geometry()
pour calculer la taille et la position.
Bien sûr, les documents pour gtk.StatusIcon.get_geometry() soulignent que "certaines plates-formes ne fournissent pas cette information" - et cela inclut MS Windows, car je reçois NoneType comme résultat.
Je peux faire une supposition et positionner la fenêtre dans le coin inférieur droit de l'écran, à 30 pixels du bas, car cela interceptera la majorité des utilisateurs de Windows qui n'ont pas déplacé la barre des tâches. Mais pour ceux qui ont, tout semble faux.
Y a-t-il une façon conviviale pour Windows d'obtenir la position de l'icône de la barre des tâches afin que je puisse y placer ma fenêtre?
S'il vous plaît noter: J'utilise déjà gtk_menu_popup()
avec gtk_status_icon_position_menu
pour un menu contextuel qui fonctionne correctement.
Mais ce que j'essaye de positionner est une gtk.Window distincte, qui n'acceptera pas gtk_status_icon_position_menu (parce que ce n'est pas un menu).
Toutes les autres idées seraient appréciées ...
gtk_status_icon_position_menu semble approprié pour un menu contextuel, mais cela fonctionnera-t-il pour un enfant gtk.Window?Nous utilisons actuellement gtk.Windows.move (x, y) pour le positionner manuellement après le calcul. Si je suppose que la plupart des systray Windoze se trouvent en bas à droite de l'écran (une mauvaise hypothèse, je sais), réglez la gravité sur Sud-Est et affichez-la, puis elle s'affiche sous la barre des tâches. Idéalement, si je pouvais détecter où se trouve réellement le fichier systray/gtk.StatusIcon sur Windows, alors je pourrais positionner la fenêtre par rapport à cela. Ou peut-être y a-t-il encore un autre meilleur moyen? – ewall