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

Ido Levy IDOL at il.ibm.com
Thu Aug 27 06:57:49 EDT 2009


> From:
> 
> MRAB <python at mrabarnett.plus.com>
> 
> To:
> 
> python-list at python.org
> 
> Date:
> 
> 26/08/2009 11:04 PM
> 
> Subject:
> 
> Re: pygtk - What is the best way to change the mouse pointer
> 
> 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)
> 

Thank you for your input.

I used logging and it seems that the last line is called.
I also used try...finally... block but it didn't solve the issue.

Then I have noticed that the line before the last one is widget.connect() 
I insert time.sleep() in between the lines and it seems to solve the 
issue.

I assume it's not suppose to work this way but it can be considered as a 
workaround 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20090827/8f98d479/attachment-0001.html>


More information about the Python-list mailing list