4

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

4

1 回答 1

4

如今,这两个类之间几乎没有区别。

当 wxPython 项目开始时,wx.PySimpleApp并且wx.App具有不同的行为(后者更底层并且没有OnInit定义默认方法,而PySimpleApp可以实例化并用于完成工作的类)。此外,某些 wxPython 版本的wx.App类具有默认OnInit定义但默认不调用wx.InitAllImageHandlers的类。

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

于 2012-08-19T21:18:55.583 回答