0
我做了一個我想要實現的小例子,它是一個StaticBoxSizer,它具有可以設置的固定邊框寬度。以下示例顯示了幾個靜態框對象,但是,如何調整其邊框寬度/厚度?WX StaticBoxSizer/Sizer邊框寬度
其他sizer可以做同樣的工作嗎?即提供兒童周圍寬度可調的邊框?
import wx
class mypanel(wx.Panel):
def __init__ (self, parent):
wx.Panel.__init__(self, parent, size=(-1, -1))
mysizer4 = wx.BoxSizer(orient=wx.HORIZONTAL)
box1 = wx.StaticBox(self, size=(-1,-1), style=wx.SUNKEN_BORDER)
box2 = wx.StaticBox(self, size=(-1,-1), style=wx.SUNKEN_BORDER)
box3 = wx.StaticBox(self, size=(-1,-1), style=wx.SUNKEN_BORDER)
mysizer = wx.StaticBoxSizer(box1, orient=wx.HORIZONTAL)
mysizer2 = wx.StaticBoxSizer(box2, orient=wx.VERTICAL)
mysizer3 = wx.StaticBoxSizer(box3, orient=wx.HORIZONTAL)
mybutton = wx.Button(self, size=(-1,-1), label="hello")
mybutton2 = wx.Button(self, size=(-1,-1), label="hello")
mybutton3 = wx.Button(self, size=(-1,-1), label="hello")
mytext1 = wx.StaticText(self, label="hello")
mytext2 = wx.StaticText(self, label="bye")
mytext3 = wx.StaticText(self, label="hello")
mytext4 = wx.StaticText(self, label="bye")
mytext5 = wx.StaticText(self, label="hello")
mytext6 = wx.StaticText(self, label="bye")
mysizer.Add(mybutton, flag=wx.EXPAND)
mysizer.Add(mytext1, flag=wx.EXPAND)
mysizer.Add(mytext2, flag=wx.EXPAND)
mysizer2.Add(mybutton2, flag=wx.EXPAND)
mysizer2.Add(mytext3, flag=wx.EXPAND)
mysizer2.Add(mytext4, flag=wx.EXPAND)
mysizer3.Add(mybutton3, flag=wx.EXPAND)
mysizer3.Add(mytext5, flag=wx.EXPAND)
mysizer3.Add(mytext6, flag=wx.EXPAND)
mysizer4.Add(mysizer)
mysizer4.Add(mysizer2)
mysizer4.Add(mysizer3)
self.SetSizer(mysizer4)
class myframe(wx.Frame):
def __init__(self):
"Constructor. No arguments"
wx.Frame.__init__(self, None, size=(-1,-1))
sizer = wx.BoxSizer(orient=wx.HORIZONTAL)
mydiag = mypanel(self)
sizer.Add(mydiag)
self.SetSizer(sizer)
if __name__ == "__main__":
app = wx.App()
region = myframe()
region.Show()
app.MainLoop()
提供的鏈接很有用,基本上說,要獲得邊框的效果,您實際上必須自己做,即實現EVT_PAINT事件,或者使用作爲面板樣式一部分的預定義邊框,並將其插入到大小化器中(可能有不同的顏色)。 Widget檢測工具位於頂部,即成爲其所有子組件的父級,並可以確定其子級的大小/位置。 沒有開箱即用的解決方案。 – Har