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 の間に垂直スペースも追加されることです。副作用として垂直スペースを追加せずに、ヘッダーの前に水平スペースを追加する方法はありますか? ありがとう。
- -編集 - -
あなたのコメントに答えるために:ここにプログラムの写真があります:
シンプルなBoxSizerプログラム...
緑色の「スペース」は必要なスペースですが、赤色の「スペース」は不要な副作用です。基本的に緑のスペースだけが必要ですが、赤のスペースは必要ありません。ヘッダーを2つのパネルと同じ高さにしたいです(真上にあるように...)。現在、それを機能させるために絶対配置を行う必要があります.BoxSizerまたは他のレイアウトマネージャーで機能させることができるかどうかを知りたかっただけです.ありがとう.