Добавить левую панель к нижней и верхней панели - PullRequest
0 голосов
/ 08 марта 2019

Код, который у меня есть, создает верхнюю и нижнюю панели, мне нужно добавить левую панель, как показано на рисунке ниже:

Мой текущий код:

import wx

class MainFrame(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self,parent,title="myapp",size=(800,580))
        self.split_win =wx.SplitterWindow(self)
        self.top = wx.Panel(self.split_win ,style = wx.SUNKEN_BORDER)
        self.bottom = wx.Panel(self.split_win ,style = wx.SUNKEN_BORDER)
        self.split_win.SplitHorizontally(self.top,self.bottom,450)
        st1 = wx.StaticText(self.bottom, -1, "This is an example of static text", (20, 10))
        self.bottom.SetBackgroundColour('white')


app = wx.App()
frame=MainFrame(None).Show()
app.MainLoop()

Мне нужна левая панель, как на картинке, где я могу добавить кнопку и комбинированный список.

enter image description here

Я также хотел бы знать, возможно ли иметь нижнюю, левую и верхнюю панели без разделения?

Спасибо за помощь

1 Ответ

1 голос
/ 09 марта 2019

Добро пожаловать на sizers в wx.python
Начните здесь: https://wxpython.org/Phoenix/docs/html/sizers_overview.html

import wx

class MainFrame(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self,parent,title="myapp",size=(800,580))
        self.top = wx.Panel(self, style = wx.SUNKEN_BORDER)
        self.bottom = wx.Panel(self ,style = wx.SUNKEN_BORDER)
        self.left = wx.Panel(self ,style = wx.SUNKEN_BORDER, size = (150,-1))
        st1 = wx.StaticText(self.bottom, -1, "This is an example of static text")
        st2 = wx.StaticText(self.left, -1, "Left Panel", (20, 10))
        self.bottom.SetBackgroundColour('white')

        sizer1 = wx.BoxSizer(wx.VERTICAL)
        sizer1.Add(self.top,1,wx.EXPAND,5)
        sizer1.Add(self.bottom,1,wx.EXPAND,5)

        sizer2 = wx.BoxSizer(wx.HORIZONTAL)
        sizer2.Add(self.left,0,wx.EXPAND,5)
        sizer2.Add(sizer1,1,wx.EXPAND,5)

        self.SetSizer(sizer2)

app = wx.App()
frame=MainFrame(None).Show()
app.MainLoop()

enter image description here

...