2014-11-04 119 views
0

我想在圖像後放置一個StaticLine(垂直)。靜態線後,我有一些按鈕。我已將它們全部放入BoxSizer(水平)中。但是在運行時我看不到靜態線。 我在這裏做錯了什麼?請幫幫我。在BoxSizer中的圖像後的WxPython StaticLine

謝謝。

這是一些代碼。

class Frame1(wx.Frame): 
    def __init__(self, *args, **kwds): 
     wx.Frame.__init__(self, *args, **kwds) 
     self.panel1 = wx.Panel(self, wx.ID_ANY) 
     img = wx.EmptyImage(MaxImageSize, MaxImageSize) 
     self.imgctrl = wx.StaticBitmap(self.panel1, wx.ID_ANY, wx.BitmapFromImage(img)) 
     self.st = wx.StaticLine(self.panel1, wx.ID_ANY, style=wx.LI_VERTICAL) 
     self.but = wx.Button(self.panel1, wx.ID_ANY, 'OK') 
     self.hbox = wx.BoxSizer(wx.HORIZONTAL) 
     self.hbox.Add(self.imgctrl, 0, wx.ALL, 5) 
     self.hbox.Add(self.st, 0, wx.ALL, 5) 
     self.hbox.Add(self.but, 1, wx.ALL, 5) 
     self.panel1.SetSizer(self.hbox) 
     self.hbox.Fit(self.panel1) 

回答

1

當您將靜態行添加到sizer中時,需要設置擴展標誌,以便擴展以垂直填充sizer。

import wx 

class Frame1(wx.Frame): 
    def __init__(self, *args, **kwds): 
     wx.Frame.__init__(self, *args, **kwds) 
     self.panel1 = wx.Panel(self, wx.ID_ANY) 
     img = wx.EmptyImage(100, 100) 
     self.imgctrl = wx.StaticBitmap(self.panel1, wx.ID_ANY, wx.BitmapFromImage(img)) 
     self.st = wx.StaticLine(self.panel1, wx.ID_ANY, style=wx.LI_VERTICAL) 
     self.but = wx.Button(self.panel1, wx.ID_ANY, 'OK') 
     self.hbox = wx.BoxSizer(wx.HORIZONTAL) 
     self.hbox.Add(self.imgctrl, 0, wx.ALL, 5) 
     self.hbox.Add(self.st, 0, wx.ALL | wx.EXPAND, 5) 
     self.hbox.Add(self.but, 1, wx.ALL, 5) 
     self.panel1.SetSizer(self.hbox) 
     self.hbox.Fit(self.panel1) 

if __name__ == '__main__': 
    app = wx.App(False) 
    frame_1 = Frame1(None) 
    frame_1.Show() 
    app.MainLoop() 
+0

謝謝。這解決了問題。 – Joydeep 2014-11-04 17:07:28