0

wxSizer を使用して、パネル内にウィジェットを配置しようとしています。ウィジェットが並んでいるのがわかりますが、枠の中に入りません。誰が私が間違っているのか教えてもらえますか?

import wx

class MyRegion(wx.Frame):
    def __init__(self):        
        wx.Frame.__init__(self, None, -1)

        self.panel = wx.Panel(self,-1,pos=(70,200), size=(300,300))
        self.panel.SetBackgroundColour((128,128,128)) # dark grey       

        sizer = wx.BoxSizer(wx.VERTICAL)

        b1 = wx.Button(self, label="TEXT1")
        b2 = wx.Button(self, label="TEXT2")
        b3 = wx.Button(self, label="TEXT3")

        sizer.Add(b1)
        sizer.Add(b2)
        sizer.Add(b3)

        self.panel.SetSizer(sizer)
        sizer.Fit(self.panel)


if __name__ == "__main__":
    app = wx.PySimpleApp()
    myRegion = MyRegion()
    myRegion.Show()
    app.MainLoop()   
4

1 に答える 1

1

フレームではなく、パネルをボタンの親にする必要があります。

b1 = wx.Button(self.panel, label="TEXT1")

この理由は、サイザーがアイテムの配置を制御しますが、UI の親子関係は、基礎となる OS コントロールに直接マップする wx オブジェクトによって依然として制御されるためです。

于 2012-07-04T14:33:35.727 に答える