Звук и рамки в wxpython - PullRequest
       34

Звук и рамки в wxpython

0 голосов
/ 27 октября 2019

Следующий код отображает окно основного кадра, пока воспроизводится музыка, которая длится около 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()
...