何时使用wx.App和PySimpleApp

时间:2012-08-19 17:11:59

标签: python wxpython

我不知道何时何地使用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()之类的按钮。

1 个答案:

答案 0 :(得分:4)

现在这两个类几乎没有区别。

当wxPython项目启动时,wx.PySimpleAppwx.App有不同的行为(后者更低级别且没有定义默认OnInit方法,而PySimpleApp是可以被实例化并完成工作的类。另外一些wxPython版本的wx.App类已经定义了默认OnInit,但默认情况下它没有调用wx.InitAllImageHandlers

现在wx.PySimpleApp留在API中主要是出于兼容性原因而且两个类之间没有区别。