2009-10-30 4 views
0

Quel est le meilleur moyen d'avoir la transparence de widgets spécifiques dans une application PyGTK? Je ne veux pas utiliser de thèmes car la transparence de chacun des widgets va changer à travers l'animation.La transparence des widgets dans PyGTK?

La seule chose que je peux trouver est d'utiliser cairo pour dessiner des widgets avec un Alpha, mais je ne peux pas comprendre comment faire cela. Y a-t-il peut-être une meilleure façon de le faire aussi?

Merci!

Répondre

3

En supposant que votre programme s'exécute sous le gestionnaire de composition, vous pouvez obtenir une transparence par widget en manipulant la fenêtre X du widget. Regardez gtk.gdk.Window.set_opacity().

Remarque, ce n'est pas gtk.Window; vous pouvez obtenir cet objet en obtenant sa propriété window (buttonWidget.window), mais seulement quand le widget est réalisé et seulement quand le widget gère les événements - gtk.Label n'a pas sa propre fenêtre X par exemple.

Si vous avez besoin de travailler même si vous n'avez pas de gestionnaire de composition, dessiner vos widgets par vous-même est la seule option - mais vous n'avez pas forcément besoin d'utiliser cairo; dessiner pixel par pixel sur la fenêtre X nue fonctionnera également.