Следующий код отображает окно основного кадра, пока воспроизводится музыка, которая длится около 15 секунд, а затем закрывается, и отображается другое окно с названием Info_frame. Код работает без ошибок. У меня вопрос: есть ли способ улучшить мой код и сделать его более эффективным? Например, как сделать так, чтобы окно основного кадра не закрывалось во время воспроизведения музыки, или есть функция, которую я могу использовать вместо wx.CallLater ()
class OtherFrame(wx.Frame):
def __init__(self, title, parent=None):
wx.Frame.__init__(self, parent=parent, title=title,size=(452,600))
self.Centre()
self.Show()
class Welcome(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, None, title='Main Frame', size=(452,600))
self.InitUI()
self.Centre()
def InitUI(self):
icon = wx.Icon()
icon.CopyFromBitmap(wx.Bitmap("sun.png", wx.BITMAP_TYPE_ANY))
self.SetIcon(icon)
png = wx.Image("Image_Welcome.jpg", wx.BITMAP_TYPE_ANY).Scale(452,600,quality=wx.IMAGE_QUALITY_NORMAL).ConvertToBitmap()
wx.StaticBitmap(self, -1, png, (0, 0), (png.GetWidth(), png.GetHeight()))
self.Show()
self.playW()
def playW(self):
filename = 'sunrise.wav'
winsound.PlaySound(filename, winsound.SND_ASYNC)
wx.CallLater(17000, self.newFrame)
def newFrame(self):
self.Close()
frame = OtherFrame(title="Info_frame")
if __name__ == '__main__':
app = wx.App()
ex = Welcome(None,title="Main Frame")
ex.Show()
app.MainLoop()