2010-04-24 4 views
0

je crée une zone de liste déroulante en utilisant PyGTK:signal d'addition Python GTK à une zone de liste déroulante

fileAttrCombo = gtk.ComboBox(); 

Je veux attacher un gestionnaire de signal pour cette zone de liste déroulante. Ce gestionnaire de signal gère lorsque l'utilisateur change de sélection dans la zone de liste déroulante.

Quelle est la meilleure approche pour ce faire?

Répondre

2

La zone de liste modifiable a un "signal" modifié.

This is a nice minimal example of using it.

#!/usr/bin/env python 

import pygtk 
pygtk.require('2.0') 
import gtk 

class ComboBoxExample: 
    def __init__(self): 
     window = gtk.Window() 
     window.connect('destroy', lambda w: gtk.main_quit()) 
     combobox = gtk.combo_box_new_text() 
     window.add(combobox) 
     combobox.append_text('Select a pie:') 
     combobox.append_text('Apple') 
     combobox.append_text('Cherry') 
     combobox.append_text('Blueberry') 
     combobox.append_text('Grape') 
     combobox.append_text('Peach') 
     combobox.append_text('Raisin') 
     combobox.connect('changed', self.changed_cb) 
     combobox.set_active(0) 
     window.show_all() 
     return 

    def changed_cb(self, combobox): 
     model = combobox.get_model() 
     index = combobox.get_active() 
     if index: 
      print 'I like', model[index][0], 'pie' 
     return 

def main(): 
    gtk.main() 
    return 

if __name__ == "__main__": 
    bcb = ComboBoxExample() 
    main() 
+0

Merci cela fonctionne comme un charme =) – zfranciscus

0

essayer de remplacer « si l'index: » par « si l'index = Aucun: » pour obtenir la 1ère valeur de combobox qui a l'indice égal à 0

Questions connexes