wxpython - разделить горизонтальный BoxSizer по вертикали - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь написать небольшой графический интерфейс для тестирования с помощью wxpython.Я получил BoxSizer с двумя панелями.Но теперь я хочу иметь две панели рядом друг с другом в нижней части моего графического интерфейса.Как разделить горизонтальный сортировщик по вертикали?

Вот мой код:

import wx

class MyFrame(wx.Frame):
   def __init__(self, parent, ID, title):
       wx.Frame.__init__(self, parent, ID, title, size=(300, 250))

       panel1 = wx.Panel(self,-1, style=wx.SUNKEN_BORDER)
       panel2 = wx.Panel(self,-1, style=wx.SUNKEN_BORDER)   

       panel1.SetBackgroundColour("BLUE")
       panel2.SetBackgroundColour("RED")

       box = wx.BoxSizer(wx.VERTICAL)
       box.Add(panel1, 2, wx.EXPAND)
       box.Add(panel2, 1, wx.EXPAND)    

       self.SetAutoLayout(True)
       self.SetSizer(box)
       self.Layout()    

app = wx.PySimpleApp()
frame = MyFrame(None, -1, "Sizer Test")
frame.Show()
app.MainLoop()

1 Ответ

0 голосов
/ 05 февраля 2019

Вам необходимо создать вертикально ориентированный BoxSizer в качестве сортировщика верхнего уровня, а затем добавить в него свой горизонтальный калибровщик.Вот пример:

import wx

class MyFrame(wx.Frame):
    def __init__(self, parent, ID, title):
        wx.Frame.__init__(self, parent, ID, title, size=(300, 250))

        main_panel = wx.Panel(self)

        panel1 = wx.Panel(main_panel,-1, style=wx.SUNKEN_BORDER)
        panel2 = wx.Panel(main_panel,-1, style=wx.SUNKEN_BORDER)

        panel1.SetBackgroundColour("BLUE")
        panel2.SetBackgroundColour("RED")

        mainsizer = wx.BoxSizer(wx.VERTICAL)
        mainsizer.AddStretchSpacer()

        box = wx.BoxSizer(wx.HORIZONTAL)
        box.Add(panel1, 2, wx.EXPAND)
        box.Add(panel2, 1, wx.EXPAND)
        mainsizer.Add(box, 1, wx.EXPAND)

        main_panel.SetSizer(mainsizer)
        self.Layout()    

app = wx.App()
frame = MyFrame(None, -1, "Sizer Test")
frame.Show()
app.MainLoop()

Также обратите внимание, что wx.PySimpleApp устарела.Вы должны просто использовать wx.App сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...