[Tkinter-discuss] Fwd: WxPython -> Tkinter
Olrik Lenstra
o.lenstra at gmail.com
Wed Oct 29 14:49:28 CET 2008
I see, Thanks a lot, I really don't wish to bother you any further, but
here's my current situation.
I am still a beginning programmer and I am not entirely sure where to put
this code exactly.
How would I go about using this code?
Thank you so much in advance.
Regards,
Olrik
2008/10/29 Guilherme Polo <ggpolo at gmail.com>
> ---------- Forwarded message ----------
> From: Guilherme Polo <ggpolo at gmail.com>
> Date: Oct 29, 2008 9:16 AM
> Subject: Re: [Tkinter-discuss] WxPython -> Tkinter
> To: Olrik Lenstra <o.lenstra at gmail.com>
> Cc: python-list at python.org
>
>
> On 10/29/08, Olrik Lenstra <o.lenstra at gmail.com> wrote:
> > Hello everyone,
> >
> > A while ago I joined the Tutor mailing list, and they helped me out with
> a
> > question regarding wxPython.
> > Now however, I have tried a program in Tkinter and I would like to see
> if
> > there is a similar command to "wx.SafeYield(self, True)".
>
>
> It will be a combination of commands, not a single one. Initially I
> considered this as "probably without solution", since tcl acquired a
> yield command just in the 8.6a3 release, but then I looked at
> wx.SafeYield code and apparently it is possible to replicate it.
>
> Here is an initial cut, it is very possible to contain something not
> equivalent to wx.SafeYield (besides it could be improved):
>
>
> import ttk
>
> inside_tkyield = False
> disabled_wins = {}
>
> def safe_yield(window, only_if_needed=False):
> window_disabler(window)
>
> try:
> return tk_yield(window, only_if_needed)
> finally:
> for widget, flags in disabled_wins.iteritems():
> ttk.Widget.state(widget, flags)
> disabled_wins.clear()
>
>
> def window_disabler(window):
> widgets = window.children.values()
> widgets.append(window)
>
> for widget in widgets:
> if widget.instate(['!disabled']):
> prev_flags = widget.state(['disabled'])
> disabled_wins[widget] = prev_flags
>
>
> def tk_yield(window, only_if_needed=False):
> # wx implements this differently based on the backend it is using
> global inside_tkyield
> if inside_tkyield:
> if not only_if_needed:
> raise RuntimeError("safe_yield called recursively")
>
> return False
>
> inside_tkyield = True;
>
> window.update()
> window.update_idletasks()
>
> inside_tkyield = False;
>
> return True
>
>
> Note that this depends on ttk widgets
> (http://pypi.python.org/pypi/pyttk) since it uses widget.state to
> disable and reenable the widgets. On windows the "wm" command supports
> disabling the entire window, so it is easier if you can use it.
>
> [Forwarded because I sent to the wrong list first time]
>
> > Below is a copy of the message to the tutor list.
> >
> > > Dear Mailing list,
> > >
> > > a while ago a few of you helped me solve an issue I had with a GUI /
> scan
> > > program that I made.
> > > The problem was that when I tried to move the frame it would hang
> until
> > the
> > > scan was finished.
> > > To solve this I had to add "wx.SafeYield(self, True)" to the scan and
> the
> > > GUI wouldn't hang any more.
> > > Now I have redone the program and have written it with Tkinter instead
> of
> > > WxPython.
> > >
> > > So is there a similar command for Tkinter as there is for WxPython?
> > >
> > > Thanks in advance.
> > > Regards,
> > > Olrik
> > >
> >
>
> > _______________________________________________
> > Tkinter-discuss mailing list
> > Tkinter-discuss at python.org
> > http://mail.python.org/mailman/listinfo/tkinter-discuss
> >
> >
>
>
>
> --
> -- Guilherme H. Polo Goncalves
>
>
> --
> -- Guilherme H. Polo Goncalves
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> http://mail.python.org/mailman/listinfo/tkinter-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tkinter-discuss/attachments/20081029/1729a9ef/attachment.htm>
More information about the Tkinter-discuss
mailing list