【wxPython】フレームの作成
フレームは代表的なウィンドウオブジェクトです。
以下のコードでは「Test Frame」と言う名前の最小限の空のアプリケーションウィンドウが表示されます。
#!/usr/bin/env python # -*- coding: utf-8 -*- import wx class MyApp(wx.App): def OnInit(self): self.frame = MyFrame(None, title="Test Frame") self.SetTopWindow(self.frame) self.frame.Show() return True class MyFrame(wx.Frame): def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="MyFrame"): super(MyFrame, self).__init__(parent, id, title, pos, size, style, name) self.panel = wx.Panel(self) if __name__ == "__main__": app = MyApp(False) app.MainLoop()
同じことは以下のコードでもできます。
#!/usr/bin/env python # -*- coding: utf-8 -*- import wx app = wx.App() frame = wx.Frame(None, -1, "Test Frame") frame.Show() app.MainLoop()
実行すると、以下のように表示されます。
どのように動くか
フレームは最も重要なコンテナウィジェットで、他のウィジェットを含むことができます。
上記のクラスで大事なことは、フレームの子供としてパネルオブジェクトを作成したことです。
パネルは他のウィジェットを含むことができます。
まず、OnInitメソッドの中でフレームのインスタンスを作ります。そのとき最初のパラメータとして「None」を渡しています。これはフレームの親ウィンドウを指定するために使われます。「None」は親を持たないことを示しています。また、2番目のパラメータとして「Test Frame」を渡しています。これはウィンドウのタイトルを指定しています。
次に、SetTopWindowメソッドを呼んでいます。これは新しく作ったMyFrameインスタンスをアプリケーションのトップウィンドウとしてセットするために呼んでいます。
最後にフレームに対して、Showメソッドを呼んでいます。これによりフレームを表示します。