加载wxPython Splashscreen

时间:2016-12-16 20:10:01

标签: python wxpython

我尝试通过执行此类操作导入应用时尽快显示启动画面

len(x) - 1

但我唯一得到的是我选择的图像的灰色形状,然后UI加载并且实际图像在闪光中填充灰色形状并且消失超时。它就像启动画面一样,但是在主画面完成之前图像不会加载。

应该立即显示图像,而不仅仅是形状。有人知道发生了什么以及如何解决它?

另外,如果没有超时启动屏幕,但在主UI出现之前将其销毁,那就太棒了。

1 个答案:

答案 0 :(得分:1)

由于MainLoop未运行,因此无法将事件传递到窗口,包括将绘制位图的启动画面EVT_PAINT事件。

wx.Yield函数将运行一个临时事件循环,因此在创建启动画面后添加一个调用将让它自己绘制,可能足以满足您的需求。一个缺点是,如果在您执行其他启动代码时需要另外一个绘制事件,那么除非您执行另一个wx.Yield,否则它将不会发生,并且取决于可能触发的其他类型的事件那些收益率,你可能不得不担心可能的重入问题。

另一种方法是继续前进并跳转到MainLoop,然后在CallAfter或其他线程中运行其余的启动代码,或者对您的应用程序有意义的任何内容。