wxPython before MainLoop
samwyse
dejanews at email.com
Wed Aug 15 07:40:24 EDT 2007
Chris Mellon wrote:
> On 8/9/07, Heikki Toivonen <heikki at osafoundation.org> wrote:
>
>>[david] wrote:
>>
>>>I'd like to refresh the display before I start the main loop.
If your window isn't able to interact with the user, then I'd consider
it a splash screen, no matter if it does look exactly like your main
application interface.
>>We have this kind of situation in Chandler, where we display and update
>>the splash screen before we enter MainLoop.
>>
[...]
>>3. The splash screen refresh is basically: draw new stuff,
>>self.Layout(), self.Update(), wx.Yield()
>>http://lxr.osafoundation.org/source/chandler/application/Application.py#1421
Looking at the Chandler code suggests a solution to [david]'s original
problem. It is possible that, on Windows only, he may need to call
Update to finish painting the display.
1432 self.Layout()
1433 if wx.Platform == '__WXMSW__':
1434 self.Update()
1435 wx.GetApp().Yield(True)
> wxYield spins the event loop in place. This can have some serious
> consequences if you aren't very careful with your usage, like
> recursively entering event handlers. I generally consider it an
> experts only interface, and avoid it.
I'll confess to being one of those old-school programmers who, back in
the day, wrote his code around big select loops instead of using
threads, but I'm intriged by the "experts only" designation. Can
someone explain further? Thanks!
More information about the Python-list
mailing list