2014-11-04 2 views
0

Я пытаюсь поставить StaticLine (Вертикальный) после изображения. После статической линии у меня есть несколько кнопок. Я поместил их в BoxSizer (по горизонтали). Но во время работы я не вижу статическую линию. Что я здесь делаю неправильно? Пожалуйста, помогите мне.WxPython StaticLine после изображения в BoxSizer

Спасибо.

Вот несколько кодов.

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