に私は私のアプリは、このwxPythonのスプラッシュスクリーンを搭載
import wx, wx.lib.agw.advancedsplash as AS, sys, os, matplotlib
matplotlib.use('WXAgg')
from threading import Thread
#some function definitions
class application(wx.Frame):
#the UI code here
class mod(Thread):
#blah blah
if __name__ == "__main__":
app = wx.App(redirect=True, filename="logfile.txt")
image = wx.Image("splash.png")
image.ConvertAlphaToMask()
bitmap = wx.BitmapFromImage(image)
splash = AS.AdvancedSplash(None, bitmap=bitmap, timeout=4000, agwStyle=AS.AS_TIMEOUT | AS.AS_CENTER_ON_SCREEN)
import time
import telnetlib
import ownmodule
import matplotlib.pyplot as plt
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wx import NavigationToolbar2Wx as NavigationToolbar
from matplotlib.figure import Figure
frame = application(None, -1, "AdvancedSplash Test")
app.MainLoop()
ような何かを行うことによってインポートされている間、できるだけ早くスプラッシュ画面を表示しようとしているが、私が得る唯一のものは灰色で形状ですイメージを選択すると、UIがロードされ、実際のイメージがグレーの形で一瞬でいっぱいになり、タイムアウトになります。スプラッシュ画面が表示されますが、メインフレームが表示されるまで画像はロードされません。
何が起こるべきかは、形状だけでなく画像を直ちに表示することです。誰かが何が起こっているのか、それを解決する方法を知っていますか?
また、スプラッシュ画面をタイムアウトしないようにしても、メインUIが表示される直前に破棄するとよいでしょう。
'splash = AS.AdvancedSplash ...'の直後に 'wx.Yield()'を追加します。動作は同じで、何も解決しません。ですから、 'MainLoop'は' class application(wx.Frame) 'を意味していますか?スタートアップコードは何ですか? – Javier