[Python] Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.
Ciao a tutti! Ho creato una ListView, e ho fatto in modo che nel momento in cui viene selezionata una riga, parta una funzione. Così: treeselection=self.listafornitori.get_selection() treeselection.set_mode(gtk.SELECTION_BROWSE) treeselection.set_select_function(self.stampalistaprodotti, iter) Funziona tutto a dovere. L'unica noia è che quando clicco su una riga della listafornitori, la funzione parte, ma la riga selezionata non viene evidenziata.. Sul manuale è scritto che la funzione viene lanciata "prima" della selezione della riga.. quindi credo che il processo di selezione venga "stoppato" li... Si potrebbe rimediare inserendo nella funzione richiamata un comando che mi evidenzi la riga selezionata, e poi proceda con il resto delle cose che deve fare.. Qualcuno sa come fare? Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.
Il giorno dom, 02/05/2010 alle 19.49 +0200, Marco Fochesato ha scritto: > Ciao a tutti! > Ho creato una ListView, e ho fatto in modo che nel momento in cui viene > selezionata una riga, parta una funzione. Così: > > treeselection=self.listafornitori.get_selection() > treeselection.set_mode(gtk.SELECTION_BROWSE) > treeselection.set_select_function(self.stampalistaprodotti, > iter) > > > Funziona tutto a dovere. L'unica noia è che quando clicco su una riga > della listafornitori, la funzione parte, ma la riga selezionata non > viene evidenziata.. Sul manuale è scritto che la funzione viene lanciata > "prima" della selezione della riga.. quindi credo che il processo di > selezione venga "stoppato" li... > Si potrebbe rimediare inserendo nella funzione richiamata un comando che > mi evidenzi la riga selezionata, e poi proceda con il resto delle cose > che deve fare.. Capisco male o tu hai una funzione che avendo un tempo di esecuzione lunghetto blocca la GUI? Se ho capito bene, la soluzione è semplicemente spostare la funzione dal main loop: se è facilmente "parcellizzabile", con delle chiamate a gobject.idle_add, altrimenti con un thread. Comunque, anche ammettendo che pur di non complicarti la vita tu sia pronto ad accettare che la GUI diventi unresponsive mentre la tua bella funzione viene eseguita, gobject.idle_add è comunque la soluzione: invece di chiamare subito la funzione, dici di eseguirla appena "non c'è nient'altro da fare". sempre se non ho capito male, ovviamente ciao Pietro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] R: Re: Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.
Ciao Pietro! No, la mia funzione non blocca la GUI.. fa solo questo: al selezionamento di una riga nella Listview, parte un'altra funzione che svuota e riempie un'altra Listview, utilizzando come parametro la selezione della prima. In pratica, nella prima Listview seleziono il fornitore, nella seconda mi vengono fuori tutti i prodotti che acquisto da tal fornitore. Funziona a dovere, ma la cosa che mi rompe molto è che il fornitore selezionato NON è evidenziato come se fosse selezionato.. non so se son riuscito a spiegarmi. > >Capisco male o tu hai una funzione che avendo un tempo di esecuzione >lunghetto blocca la GUI? > >Se ho capito bene, la soluzione è semplicemente spostare la funzione dal >main loop: se è facilmente "parcellizzabile", con delle chiamate a >gobject.idle_add, altrimenti con un thread. > >Comunque, anche ammettendo che pur di non complicarti la vita tu sia >pronto ad accettare che la GUI diventi unresponsive mentre la tua bella >funzione viene eseguita, gobject.idle_add è comunque la soluzione: >invece di chiamare subito la funzione, dici di eseguirla appena "non c'è >nient'altro da fare". > >sempre se non ho capito male, ovviamente > >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
Re: [Python] R: Re: Gtk - ListView - Catturare la selezione di una riga e lanciare una funzione.
Io ho capito, ma non avevo mai sentito di un "problema" simile. Solitamente le varie voci vengono selezionate in automatico. Non conosco bene le GTK, ma prova a vedere se ci sono degli argomenti specifici che possono fare al caso tuo. Oppure al massimo controlla se tramite il designer esiste qualche opzione specifica e la reimplementi tarmite codice, al limite. Ciao. Il giorno 03 maggio 2010 08.14, marco...@libero.it ha scritto: > Ciao Pietro! > No, la mia funzione non blocca la GUI.. fa solo questo: al selezionamento > di > una riga nella Listview, parte un'altra funzione che svuota e riempie > un'altra > Listview, utilizzando come parametro la selezione della prima. In pratica, > nella prima Listview seleziono il fornitore, nella seconda mi vengono fuori > tutti i prodotti che acquisto da tal fornitore. > Funziona a dovere, ma la cosa che mi rompe molto è che il fornitore > selezionato NON è evidenziato come se fosse selezionato.. > non so se son riuscito a spiegarmi. > > > > > >Capisco male o tu hai una funzione che avendo un tempo di esecuzione > >lunghetto blocca la GUI? > > > >Se ho capito bene, la soluzione è semplicemente spostare la funzione dal > >main loop: se è facilmente "parcellizzabile", con delle chiamate a > >gobject.idle_add, altrimenti con un thread. > > > >Comunque, anche ammettendo che pur di non complicarti la vita tu sia > >pronto ad accettare che la GUI diventi unresponsive mentre la tua bella > >funzione viene eseguita, gobject.idle_add è comunque la soluzione: > >invece di chiamare subito la funzione, dici di eseguirla appena "non c'è > >nient'altro da fare". > > > >sempre se non ho capito male, ovviamente > > > >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