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, marco...@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: marco...@libero.it > > >Data: 04/05/2010 12.46 > > >A: "Pietro Battiston"<too...@email.it> > > >Cc: "Discussioni generali sul linguaggio Python"<python@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, marco...@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@lists.python.it > > >http://lists.python.it/mailman/listinfo/python > > > > > > > > > _______________________________________________ > > Python mailing list > > Python@lists.python.it > > http://lists.python.it/mailman/listinfo/python > > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python