pygtk - What is the best way to change the mouse pointer

MRAB python at mrabarnett.plus.com
Wed Aug 26 22:03:45 CEST 2009


Ido Levy wrote:
> Hello All,
> 
> I am writing a dialog which one of its widget is a gtk.ComboBoxEntry ( 
> let's assume widget in the example below is its instance )
> When the user select one of the values from the gtk.ComboBoxEntry I need 
> to run some calculations that takes a few seconds.
> In order to reflect calculation time to the user I want to switch the 
> mouse pointer to an hour glass and back to arrow what it finish the 
> calculation.
> 
> I use the following code but it doesn't seems to work in a deterministic 
> way. From time to time it skips the last line and keep the mouse pointer 
> as an hour glass.
> 
>         watch = gtk.gdk.Cursor(gtk.gdk.WATCH)
>         widget.window.set_cursor(watch)
> 
>         calculation code
> 
>         widget.window.set_cursor(None)
> 
> I would appreciate your advice on the right way to implement this.
> 
Could the calculation code be raising an exception? Try adding some
logging to see whether the last lien is actually being called. You could
also use a try...finally... block to ensure that the last line is
called:

     watch = gtk.gdk.Cursor(gtk.gdk.WATCH)
     widget.window.set_cursor(watch)
     try:
         calculation code
     finally:
         widget.window.set_cursor(None)




More information about the Python-list mailing list