6

私はwx.Pythonを使用しており、次のような静的ボックス内に「ラップ」したいオブジェクトのグループがあります。

ここに画像の説明を入力してください

ただし、そのチュートリアルでは位置サイズを使用しており、代わりにサイザーを使用しています。アイテムを中に入れるのに苦労しています:

ここに画像の説明を入力してください

むしろそれらは静的ボックスの下にあります。位置ではなくサイザーを使用して静的ボックス内にオブジェクトを含めるにはどうすればよいですか?

これが私のコードです:

    # Date and Graph Type Selection 

    self.dateLbl = wx.StaticBox(self, -1, 'Date Range:', size=(240, 140))
    self.dategraphSizer = wx.BoxSizer(wx.VERTICAL)
    self.dategraphSizer.Add(self.dateLbl, 0, wx.ALL|wx.LEFT, 5)

    # Date Range Selection
    self.dateSizer = wx.BoxSizer(wx.HORIZONTAL)
    self.dateone = wx.TextCtrl(self, -1, style=wx.ALIGN_LEFT)
    self.datetwo = wx.TextCtrl(self, -1, style=wx.ALIGN_LEFT)
    self.date2Lbl = wx.StaticText(self, -1, "TO")
    self.dateSizer.Add(self.dateone, 0, wx.ALL|wx.CENTER, 2)
    self.dateSizer.Add(self.date2Lbl, 0, wx.ALL|wx.CENTER, 2)
    self.dateSizer.Add(self.datetwo, 0, wx.ALL|wx.CENTER, 2)


    # Date Quick Selection Buttons
    self.dategraphSizer.Add(self.dateSizer, 0, wx.ALL|wx.CENTER, 5)
    self.todayButton = wx.Button(self, -1, 'Today Only')
    self.dategraphSizer.Add(self.todayButton, 0, wx.ALL|wx.LEFT, 5)
    self.recentButton = wx.Button(self, -1, 'Most Recent Session')
    self.dategraphSizer.Add(self.recentButton, 0, wx.ALL|wx.LEFT, 5)
4

1 に答える 1

13

サイザーを使用する場合は、サイザーであり、使用する静的ボックスを含む特定の「静的ボックスサイザー」を作成する必要があります。これは次の方法で行われます。

self.foo = wx.StaticBoxSizer(self.box, wx.ORIENT)

これは、静的ボックスを事前に作成する必要があり、Sizerの作成に渡される議論であることを意味します。それ以降、Sizerは通常のSizerとまったく同じように動作します。これは私があなたのコードを修正したものです:

    # Date and Graph Type Selection 

    self.dateLbl = wx.StaticBox(self, -1, 'Date Range:', size=(240, 140))
    self.dategraphSizer = wx.StaticBoxSizer(self.dateLbl, wx.VERTICAL)
    #self.dategraphSizer.Add(self.dateLbl, 0, wx.ALL|wx.LEFT, 5) NOTE THIS ISN'T NEEDED ANYMORE

    # Date Range Selection
    self.dateSizer = wx.BoxSizer(wx.HORIZONTAL)
    self.dateone = wx.TextCtrl(self, -1, style=wx.ALIGN_LEFT)
    self.datetwo = wx.TextCtrl(self, -1, style=wx.ALIGN_LEFT)
    self.date2Lbl = wx.StaticText(self, -1, "TO")
    self.dateSizer.Add(self.dateone, 0, wx.ALL|wx.CENTER, 2)
    self.dateSizer.Add(self.date2Lbl, 0, wx.ALL|wx.CENTER, 2)
    self.dateSizer.Add(self.datetwo, 0, wx.ALL|wx.CENTER, 2)


    # Date Quick Selection Buttons
    self.dategraphSizer.Add(self.dateSizer, 0, wx.ALL|wx.CENTER, 5)
    self.todayButton = wx.Button(self, -1, 'Today Only')
    self.dategraphSizer.Add(self.todayButton, 0, wx.ALL|wx.LEFT, 5)
    self.recentButton = wx.Button(self, -1, 'Most Recent Session')
    self.dategraphSizer.Add(self.recentButton, 0, wx.ALL|wx.LEFT, 5)

これにより、次の結果が得られます。

ここに画像の説明を入力してください

于 2011-07-29T02:58:02.847 に答える