2010-02-03 5 views
4

J'ajoute deux icônes à un gtk.Entry dans PyGTK. Les signaux icônes sont traités par la méthode suivanteDifférencier les icônes gtk.Entry

def entry_icon_event(self, widget, position, event) 

Je suis en train de faire la différence entre les deux d'entre eux:

<enum GTK_ENTRY_ICON_PRIMARY of type GtkEntryIconPosition> 
<enum GTK_ENTRY_ICON_SECONDARY of type GtkEntryIconPosition> 

Comment puis-je faire cela? J'ai creusé à travers la documentation de PyGTK mais il n'y a aucun objet GtkEntryIconPosition ni aucune définition pour cette énumération.

Merci

+1

Eh bien, il semble que je peux comparer à l'aide position.value_name qui retourne le nom du enum. En outre, en créant un nouvel objet comme: x = gtk._gtk.EntryIconPosition (0) pour PRIMARY x = gtk._gtk.EntryIconPosition (1) pour SECONDAIRE Puis comparez les objets. – Eldelshell

Répondre

1

Il y a une meilleure façon de le faire:

def entry_icon_event(self, widget, icon, event): 
    if icon == gtk.ENTRY_ICON_PRIMARY: 
     ... 
    elif icon == gtk.ENTRY_ICON_SECONDARY: 
     ... 
+0

Cool, je savais qu'il devrait y avoir une meilleure façon de le faire. Merci! – Eldelshell

1

Bon, puisque personne ne donnait une réponse, je vais faire ce que j'ai trouvé. Une méthode pour utiliser ces icônes ressemblerait à ceci:

def entry_icon_event(self, widget, icon, event): 
    if icon.value_name == "GTK_ENTRY_ICON_PRIMARY": 
     print "First Button" 
     if event.button == 0: 
      print "Left Click": 
     else: 
      print "Right Click" 
    elif icon.value_name == "GTK_ENTRY_ICON_SECONDARY": 
     print "Second Button" 
     if event.button == 0: 
      print "Left Click": 
     else: 
      print "Right Click" 
Questions connexes