为什么我的窗口不能正常关闭?

import wx
class MyFrame(wx.Frame):
    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,title="我的窗口",pos=(100,100),size=(500,500))
        panel=wx.Panel(self)
        self.abc=wx.StaticText(panel,label="输入用户名")
        sizer=wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.abc,proportion=0,flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER,border=15)
        panel.SetSizer(sizer)            #尺寸器
if __name__=='__main__':
    app=wx.App()
    frame=MyFrame(parent=None,id=1)
    frame.Show()
    app.MainLoop()       #调用主循环方法
    import time
    time.sleep(5)
    frame.close()            #关闭窗口

这段代码我是想让它先定义窗口,等待5秒再关闭窗口。但它等了5秒后还没有关闭,是不是卡在主循环方法那里了?该怎么解决?我是python新手,请大家帮帮忙。感谢!

app.MainLoop() 的意思是,接受窗口的消息循环,代码不再往下进行了。
直到界面由用户触发或异常退出,才会执行后面的代码。

难道不是app.close()吗