我尝试通过执行此类操作导入应用时尽快显示启动画面
len(x) - 1
但我唯一得到的是我选择的图像的灰色形状,然后UI加载并且实际图像在闪光中填充灰色形状并且消失超时。它就像启动画面一样,但是在主画面完成之前图像不会加载。
应该立即显示图像,而不仅仅是形状。有人知道发生了什么以及如何解决它?
另外,如果没有超时启动屏幕,但在主UI出现之前将其销毁,那就太棒了。
答案 0 :(得分:1)
由于MainLoop
未运行,因此无法将事件传递到窗口,包括将绘制位图的启动画面EVT_PAINT
事件。
wx.Yield
函数将运行一个临时事件循环,因此在创建启动画面后添加一个调用将让它自己绘制,可能足以满足您的需求。一个缺点是,如果在您执行其他启动代码时需要另外一个绘制事件,那么除非您执行另一个wx.Yield
,否则它将不会发生,并且取决于可能触发的其他类型的事件那些收益率,你可能不得不担心可能的重入问题。
另一种方法是继续前进并跳转到MainLoop
,然后在CallAfter
或其他线程中运行其余的启动代码,或者对您的应用程序有意义的任何内容。