wxPython before MainLoop

kyosohma at gmail.com kyosohma at gmail.com
Fri Aug 10 09:10:39 EDT 2007


On Aug 9, 8:51 pm, "[david]" <da... at nospam.spam> wrote:
> I'm disappointed that I didn't get a wxPython solution.
>
> If the only way to get wxPython to correctly handle
> this simple task is to code around it, I don't think
> wxPython is really ready for Windows.
>
> Is there a better place to ask?
>
> Regarding the suggestions:
>
> Bjoern, you're wrong. The GUI needs to be displayed
> for the user to analyse. A delay between display and
> readiness is much better than a delay before display
> or a delay with the GUI half-drawn.
>
> Mike, the screen does display correctly, it's just
> that in Windows, screen updates are not processed
> while the application is busy.
>
> 7Stud, that's a solution. Unless anyone comes up
> with a direct solution, I guess I'll have to do that.
>
> [david]
>
> [david] wrote:
> > I'd like to refresh the display before I start the main loop.
>
> > I have code like this:
>
> > app = App()
> > app.Show()
> > app.long_slow_init()
> > app.MainLoop()
>
> > The main frame partly loads at Show, but because the mainloop has not
> > started yet, the display does not update until long_slow_init() finishes.
>
> > Alternatively, I could code
>
> > app = App()
> > app.long_slow_init()
> > app.Show()
> > app.MainLoop()
>
> > Which would give me a crisp Show, but there would be a long slow wait
> > before the app showed any activity at all. I would need a splash screen.
>
> > I'd rather not have a splash screen (and I don't know how anyway). I'd
> > like to just make app.Show() finish correctly before running
> > long_slow_init.
>
> > Is there a wx internal method that I can use to give Windows the
> > opportunity to finish painting the frame before I run long_slow_init()?
>
> > Or is there a better idea?
>
> > (david)

Chris is right. The only way to interact with a gui is with a separate
thread, otherwise you're blocking the gui's mainloop thread. That's
why I gave that link. That's how to do it in every GUI I'm aware of.

Mike




More information about the Python-list mailing list