[Python] R: Re: R: Re: R: Re: Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.

Pietro Battiston toobaz a email.it
Mar 11 Maggio 2010 08:29:38 CEST


Il giorno ven, 07/05/2010 alle 21.26 +0200, Marco Fochesato ha scritto:
> Dopo aver risolto il problema,
> ho notato che la procedura sulle selezioni successive alla prima,
> rallentava parecchio.
> Ho così scoperto che, alla prima selezione la funzione chiamata viene
> eseguita una volta.. alle successive viene eseguita tre volte.
> Da cosa può dipendere?

Così a naso, mi verrebbe il sospetto che "set_select_function(f)"
preveda una granularità tale che quando clicchi su una nuova riga, f
venga chiamata
1) prima per dire "ehi, la riga vecchia non è più selezionata"
2) poi per dire "ehi, la riga nuova è selezionata"

Ciò detto, non trovo ancora la giustificazione per la _terza_ chiamata,
ma in ogni caso starebbe a te fare in modo che la funzione "esca in
fretta" quando non deve fare niente.

Ma inizia a venirmi un dubbio: sicuro che tu vuoi giocare con
"set_select_function()" e _non_ semplicemente aggiungere una callback
per il segnale "changed" della selection?

È quello il modo standard per monitorare una treeview.

> Tenete conto che la riga di codice:
> 
> treeselection.set_select_function(self.stampalistaprodotti,iter)
> 
> si trova nella funzione "def __init___"... può dipendere da questo?
> 

Così a occhio, direi di no.

ciao

Pietro

> Marco
> 
> 
> 
> Il giorno mar, 04/05/2010 alle 16.24 +0200, marcofoc a libero.it ha
> scritto:
> > ci sono arrivato!
> > Alla fine della funzione chiamata, ho aggiunto:
> > return True
> > 
> > E la riga si seleziona...
> > 
> > Marco
> > 
> > >----Messaggio originale----
> > >Da: marcofoc a libero.it
> > >Data: 04/05/2010 12.46
> > >A: "Pietro Battiston"<toobaz a email.it>
> > >Cc: "Discussioni generali sul linguaggio Python"<python a lists.python.it>
> > >Ogg: Re: [Python] R: Re: R: Re: Gtk - ListView - Catturare la selezione di 
> > una riga e lanciare una funzione.
> > >
> > >Infatti!
> > >La documentazione dice proprio cosi!
> > >Ho fatto un sacco di prove.. ma non riesco a capire come far passare
> > >alla funzione sto True..
> > >Quindi, il problema si riassume qui:
> > >
> > >        treeselection.set_select_function(self.stampalistaprodotti,
> > >iter)
> > >
> > >
> > >    def stampalistaprodotti(self, evento, data):
> > >
> > >Come devo fare??
> > >
> > >Marco
> > >
> > >
> > >
> > >Il giorno mar, 04/05/2010 alle 09.12 +0200, Pietro Battiston ha scritto:
> > >> Il giorno lun, 03/05/2010 alle 13.32 +0200, marcofoc a libero.it ha
> > >> scritto:
> > >> > >OK, mi è un po' più chiaro, anche se non ho ovviamente presente tutti i
> > >> > >fattori in gioco... self.stampalistaprodotti restituisce True?
> > >> > >
> > >> > >ciao
> > >> > >
> > >> > >Pietro
> > >> > >
> > >> > Perdonami l'ignoranza.. cosa vuoi dire per restituisce True?
> > >> > self.stampalistaprodotti è la funzione che viene chiamata quando 
> > seleziono, 
> > >> > parte e fa quello che deve fare in maniera perfetta!
> > >> > 
> > >> 
> > >> Ora mi rendo conto che forse il disguido era molto più terra-terra:
> > >> "restituisce True" è semplicemente la traduzione italiana di "returns
> > >> True", ovvero, per farla brevissima, ha un "return True" alla fine.
> > >> 
> > >> Quel che dice la documentazione è che tu potresti _non_ volere che la
> > >> riga diventi selezionata, e se _lo vuoi_ glielo fai capire facendo in
> > >> modo che la funzione impostata con set_select_function() restituisca,
> > >> appunto, True.
> > >> 
> > >> ciao
> > >> 
> > >> Pietro
> > >> 
> > >
> > >
> > >_______________________________________________
> > >Python mailing list
> > >Python a lists.python.it
> > >http://lists.python.it/mailman/listinfo/python
> > >
> > 
> > 
> > _______________________________________________
> > Python mailing list
> > Python a lists.python.it
> > http://lists.python.it/mailman/listinfo/python
> 
> 
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python




Maggiori informazioni sulla lista Python