我写了两段代码:
code1.py
import wx
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None,title="MyFrame")
self.SetTopWindow(self.frame)
self.frame.Show()
return True
class MyFrame(wx.Frame):
def __init__(self,*args,**kwargs):
super(MyFrame,self).__init__(*args,**kwargs)
self.CreateStatusBar()
self.SetStatusText("Initializing")
self.CreateToolBar()
if __name__ == "__main__":
app = MyApp(False)
app.MainLoop()
code2.py
import wx
app = wx.App()
frame = wx.Frame(None,-1,"Test")
SetTopWindow(frame)
frame.show()
app.MainLoop()
有些事情不像代码1那样工作。
答案 0 :(得分:2)
窗口立即关闭,因为代码有问题。如您所知,SetTopWindow未定义,但还有另一个问题。 Frame没有show()方法。它有一个Show()方法。注意资本化的差异。如果你看第一个代码示例,你会看到你正在调用app对象的SetTopWindow()方法。你也需要在这里做到这一点:
import wx
app = wx.App()
frame = wx.Frame(None,-1,"Test")
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()