[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