[Python] parametri da passare alla funzione di callback (glade)

Nicola Giosmin - nicgios a yahoo.it
Lun 2 Apr 2007 16:05:28 CEST


Carissimo Gian Mario,

ho studiato il tuo limpido  esempio Venerdė e in 2
giorni  ho riscritto  la mia  piccola applicazione
gtk  a manina  e senza  usare Glade  (imparando un
monte di cose): *tutte* le cose che non riuscivo a
fare in Glade sono riuscito a farle a mano.

Mi  convinco  sempre  di  pių che  i  neofiti  non
dovrebbero  usare troppi  ausilii (paradossalmente
dedicati ad utenti ben pių esperti :)...

Non so come ringraziarti (assieme a tutta la lista
ovviamente).

nicgios

On giovedė 22 marzo 2007, alle 15:29, Gian Mario Tagliaretti wrote:
> Il 22/03/07, Nicola Giosmin -<nicgios a yahoo.it> ha scritto:
> 
> >E il bottone č (ovviamente button1). Cosa sbaglio?
> >Il  problema  č  che   la  mia  funzione  dovrebbe
> >prendere  un  valore  e non  lavorare  con  valori
> >predefiniti... credo di  dover passare valori alla
> >funzione  di callback,  ma non  so come  si fa  in
> >glade; oppure devo modificare il codice di python?
> 
> quando connetti un evento ad un widget, puoi passare un numero
> arbitrario di parametri, guarda l'esempio qua sotto:
> 
> mport gtk
> import random
> 
> def on_click(button, lista, testo):
> 	seed = random.randint(0, 4)
> 	l.set_text(testo + lista[seed])
> 
> w = gtk.Window ()
> w.connect("destroy", gtk.main_quit)
> 
> v = gtk.VBox ()
> w.add (v)
> 
> l = gtk.Label ("cambiami")
> 
> v.pack_start(l)
> 
> b = gtk.Button ("change label")
> 
> v.pack_start(b)
> 
> lista = ["pippo", "pluto", "paperino", "clarabella", "nonna papera"]
> 
> b.connect("clicked", on_click, lista, "io sono: ")
> 
> w.show_all()
> 
> gtk.main()
> 
> 
> I parametri lista ed "io sono: " li passi quando connetti la callback
> al bottone, gtk li passa per te come argomenti della funzione chiamata
> DOPO aver passato gli argomenti propri del segnale a cui ti sei
> collegato, in questo caso il clicked.
> 
> Non so se mi sono spiegato...spero di si.
> 
> ciao
> -- 
> Gian Mario Tagliaretti
> http://www.parafernalia.org/pygtk/


Maggiori informazioni sulla lista Python