我使用 wx.BoxSizer 制作了一个小而简单的程序。这是源代码:'
import wx
# MAIN PROGRAM...
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "My Frame", size = (600, 600))
mainPanel = wx.Panel(self)
mainBox = wx.BoxSizer(wx.VERTICAL)
header1 = wx.StaticText(mainPanel, label = 'Header1:')
header2 = wx.StaticText(mainPanel, label = 'Header2:')
panel1 = wx.Panel(mainPanel, size = (200, 200), style = wx.SUNKEN_BORDER)
panel2 = wx.Panel(mainPanel, size = (200, 200), style = wx.SUNKEN_BORDER)
box1 = wx.BoxSizer(wx.HORIZONTAL)
box1.AddSpacer(50)
box1.Add(header1, 0, wx.ALL, 5)
box1.AddSpacer(50)
box1.Add(header2, 0, wx.ALL, 5)
box2 = wx.BoxSizer(wx.HORIZONTAL)
box2.Add(panel1, 0, wx.ALL, 5)
box2.Add(panel2, 0, wx.ALL, 5)
mainBox.Add(box1, 0, wx.ALL, 5)
mainBox.Add(box2, 0, wx.ALL, 5)
mainPanel.SetSizer(mainBox)
#self.Center()
if __name__ == '__main__':
app = wx.App()
frame = MyFrame()
frame.Show(True)
app.MainLoop()
print 'Exiting...'
问题是,当我在每个标题的左侧添加水平空间时,它还会在标题和 sunken_border header1 和 header2 之间添加垂直空间。无论如何只在标题之前添加水平空间而不添加垂直空间作为副作用?谢谢。
- -编辑 - -
回答您的评论:这是程序的图片:
Simple BoxSizer 程序...
绿色的“空间”是想要的空间,但红色的“空间”是不必要的副作用。我基本上只想要绿色空间,但我不想要红色空间,我希望标题与两个面板齐平(就像直接在顶部......)。现在,我必须做绝对定位才能让它工作,我只是想知道你是否可以让它与 BoxSizer 或其他一些布局管理器一起工作......再次感谢。