2012-03-14 107 views
0

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中使用多个面板吗?

回答

1

对不起,我只是意识到我忘记了设置sizer。那之后它运行良好。

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)) 

这实际上会创建多个面板,其中第二个是第一个面板的子面板。他们的布局虽然不友好,但你需要考虑Sizers。

+0

对不起,以前的错字。我已经完成了你的建议,但是当我使用sizer时,输出的尺寸不适合。你可以看看我的错误。 – 2012-03-14 17:13:40