2012-03-14 61 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