簡體   English   中英

如何在wx.StaticBox周圍添加邊框/填充?

[英]How can I add a border/padding around a wx.StaticBox?

我在wx.Panel中有一個wx.StaticBox。 靜態框幾乎占據了面板中沒有邊框的所有空間。 如何在靜態框周圍添加邊框?

一些示例代碼:

  self.aPanel = wx.Panel( self, wx.ID_ANY, style = wx.RAISED_BORDER )

  self.aLabel = wx.StaticText( self.aPanel, -1, 'Bar' )

  self.aSizer = wx.BoxSizer( wx.HORIZONTAL )
  self.aSizer.Add( self.aLabel, 0, wx.ALIGN_CENTER | wx.ALL )

  self.aBox = wx.StaticBox( self.aPanel, wx.ID_ANY, 'Foo' )
  self.aBoxSizer = wx.StaticBoxSizer( self.aBox, wx.VERTICAL )
  self.aBoxSizer.Add( self.aSizer, 0, wx.ALIGN_LEFT | wx.ALL )

  self.aPanel.SetSizer( self.aBoxSizer )

我猜可能是因為你使用的是wx.StaticBoxSizer。 如果我用wx.BoxSizer替換它,則boarder參數按預期工作。 這是一個最小的例子。 我不知道你想要的確切布局。 所以,它可能不會做你真正想要的,但我希望它有助於作為一個起點。

(編輯:根據評論修改的代碼)

import wx

class myframe(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, title='Test', size=(200,200))

        self.aPanel = wx.Panel(self, style = wx.RAISED_BORDER )
        self.aLabel = wx.StaticText( self.aPanel, -1, 'Bar' )
        self.aBox = wx.StaticBox(self.aPanel, -1, 'Foo')

        self.aSizer = wx.BoxSizer( wx.HORIZONTAL )
        self.aSizer.Add( self.aLabel, 0, wx.ALIGN_CENTER | wx.ALL )

        self.aBoxSizer = wx.StaticBoxSizer( self.aBox, wx.VERTICAL )
        self.aBoxSizer.Add( self.aSizer, 0, wx.ALIGN_LEFT | wx.ALL )

        vbox = wx.BoxSizer(wx.VERTICAL)
        vbox.Add(self.aBoxSizer, 1, wx.EXPAND | wx.ALL, 20)
        self.aPanel.SetSizer( vbox )

        self.Show()


if __name__ == '__main__':

    app = wx.PySimpleApp(0)
    frame = myframe()
    app.MainLoop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM