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

Gian Mario Tagliaretti gianmt a gnome.org
Gio 22 Mar 2007 15:29:39 CET


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