wxpython中的多个面板

时间:2012-03-14 17:00:21

标签: python wxpython

是否可以在wxpython中拥有多个面板?我想要这样的东西:

import wx.grid
import sys

class Mat_Frame(wx.Frame):
    def __init__(self,parent):

        wx.Frame.__init__(self,wx.GetApp().TopWindow,title='Material Properties')
        self.panel=wx.Panel(self,-1)
        self.AdderPanel=wx.Panel(self.panel,-1)
        self.InputPanel=wx.Panel(self.panel,-1)
        self.OutputPanel=wx.Panel(self.panel,-1)
        HorSizer=wx.BoxSizer(wx.HORIZONTAL)
        HorSizer.Add(self.panel,proportion=1,flag=wx.EXPAND|wx.ALL)
        HorSizer.Add(self.AdderPanel,proportion=1,flag=wx.EXPAND|wx.ALL)
        HorSizer.Add(self.InputPanel,proportion=1,flag=wx.EXPAND|wx.ALL)
        HorSizer.Add(self.OutputPanel,proportion=1,flag=wx.EXPAND|wx.ALL)

我尝试了这个,但它没有用。我的意思是,我得到了错误的窗户。我在这里做错了吗?有人能指出我如何在wxpython中使用多个面板吗?

2 个答案:

答案 0 :(得分:1)

您可以根据需要创建任意数量的面板。你只创建了一个,然后是一系列元组。你可能想要这个:

self.panel=wx.Panel(self,-1,size=(x,x))
panel1=wx.Panel(self.panel,-1,size=(x,x))
panel2=wx.Panel(self.panel,-1,size=(x,x))

这实际上会创建几个Panel,其中第二个是第一个的子级。虽然他们的布局不会很友好 - 你需要调查Sizer。

答案 1 :(得分:1)

抱歉,我刚刚意识到我忘了设置sizer。之后它运作良好。

相关问题