我不知道何时何地使用wx.App和PySimpleApp
像两个代码一样:#!/usr/bin/env python
import wx
import wx.py.images as images
class ToolbarFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Toolbars',
size=(300, 200))
panel = wx.Panel(self)
panel.SetBackgroundColour('White')
class App(wx.App):
def OnInit(self):
frame = ToolbarFrame(parent=None, id=-1)
frame.Show()
return True
if __name__ == '__main__':
app = App()
app.MainLoop()
和这段代码:
#!/usr/bin/env python
import wx
class ToolbarFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Toolbars',
size=(300, 200))
panel = wx.Panel(self)
panel.SetBackgroundColour('White')
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = ToolbarFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()
有什么区别吗? 另一个问题是其他小部件在wx.Frame()或wx.App()之类的按钮。
答案 0 :(得分:4)
现在这两个类几乎没有区别。
当wxPython项目启动时,wx.PySimpleApp
和wx.App
有不同的行为(后者更低级别且没有定义默认OnInit
方法,而PySimpleApp
是可以被实例化并完成工作的类。另外一些wxPython版本的wx.App
类已经定义了默认OnInit
,但默认情况下它没有调用wx.InitAllImageHandlers
。
现在wx.PySimpleApp
留在API中主要是出于兼容性原因而且两个类之间没有区别。