wxpython新建frame的问题

vvvvv999 2018-04-24 10:32:23
wxPython 如果在原 frame1 上直接新建一个 frame2,frame2 闪一下就消失,但是如果在新建语句后加一个 app.MainLoop()新建的 frame2 不消失,但是 frame1 无法再对操作做出响应。请问这是怎么回事,困扰了好几天仍然没有找到解决方案,心态很崩溃。请问有没有大神知道其中的原理的,求告知,万分感谢!!!!!!!!

具体问题如下:

...全文
1096 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈年椰子 2018-04-27
  • 打赏
  • 举报
回复
是不是这种效果?

import wx

class App(wx.App):

    def OnInit(self):
       frame = MainFrame()
       frame.Show()
       self.SetTopWindow(frame)
       return True

class MainFrame(wx.Frame):

    title = "Main Frame"

    def __init__(self):
        wx.Frame.__init__(self, None, 1, self.title) #id = 5

        menuFile = wx.Menu()

        menuAbout = wx.Menu()
        menuAbout.Append(2, "&About...", "About this program")

        menuBar = wx.MenuBar()
        menuBar.Append(menuAbout, "&Help")
        self.SetMenuBar(menuBar)

        self.CreateStatusBar()

        self.Bind(wx.EVT_MENU, self.OnAbout, id=2)

    def OnQuit(self, event):
        self.Close()

    def OnAbout(self, event):
        AboutFrame().Show()

class AboutFrame(wx.Frame):

    title = "About"

    def __init__(self):
        wx.Frame.__init__(self, wx.GetApp().TopWindow, title=self.title)
        vsizer1 = wx.BoxSizer(orient=wx.VERTICAL)
        wbtn2 = wx.Button(self, -1, 'Button')
        vsizer1.Add(wbtn2, 0, wx.ALIGN_CENTER | wx.ALL, 5)
        self.SetSizer(vsizer1)

if __name__ == '__main__':
    app = App(False)
    app.MainLoop()

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧