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

2010-05-02 Per discussione Marco Fochesato
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.

2010-05-02 Per discussione Pietro Battiston
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.

2010-05-02 Per discussione marco...@libero.it
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.

2010-05-02 Per discussione Valerio Turturici
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