4

wx.App と PySimpleApp をいつどこで使用すればよいかわかりません

2つのコードのように:

#!/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

現在、これら 2 つのクラスにほとんど違いはありません。

wxPython プロジェクトが開始され、異なる動作wx.PySimpleAppをしたときwx.App(後者は、より低レベルで、デフォルトOnInitメソッドが定義されていませんでしPySimpleAppたが、インスタンス化してジョブを実行できるクラスでした)。また、一部の範囲の wxPython バージョンにはwx.App、デフォルトで定義されたクラスがありましたが、デフォルトOnInitでは呼び出されませんでしたwx.InitAllImageHandlers

現在wx.PySimpleAppは主に互換性の理由で API に残され、2 つのクラスの区別はありません。

于 2012-08-19T21:18:55.583 に答える