У меня есть рамка, которая существует в качестве начального экрана, чтобы пользователь мог сделать выбор до запуска основной программы. После того, как пользователь делает выбор, мне нужно, чтобы экран оставался как заставка, пока основная программа не закончит загрузку обратно.
Я сделал это, создав приложение и запустив поток:
class App(wx.App):
'''
Creates the main frame and displays it
Returns true if successful
'''
def OnInit(self):
try:
'''
Initialization
'''
self.newFile = False
self.fileName = ""
self.splashThread = Splash.SplashThread(logging, self)
self.splashThread.start()
#...More to the class
который запускает фрейм:
class SplashThread(threading.Thread):
def __init__(self, logger, app):
threading.Thread.__init__(self)
self.logger = logger
self.app = app
def run(self):
frame = Frame(self.logger, self.app)
frame.Show()
Значение приложения необходимо, поскольку оно содержит обратный вызов, который позволяет основной программе продолжить работу, когда пользователь делает свой выбор. Проблема в том, что экран запуска мигает только в течение миллисекунды, а затем исчезает, не позволяя пользователю сделать выбор и блокируя оставшуюся часть запуска.
Есть идеи? Заранее спасибо!