WxPython StaticLine после изображения в BoxSizer
Я пытаюсь поместить 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 ответ
Решение
Когда вы добавляете статическую линию в классификатор, вам нужно установить флаг расширения, чтобы он расширялся, чтобы заполнить классификатор по вертикали.
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()