2016-09-14 61 views
0

我想用2個面板編寫簡單的代碼。左側面板上的多個按鈕和右側面板上的相應頁面,點擊按鈕時將顯示該頁面。每個按鈕點擊更改面板到各自的頁面,並有必要的輸入字段以供進一步處理。我不知道我該怎麼做到這一點。 下面是引用更改多個面板按鈕單擊wxpython

http://imgur.com/a/xXP1l

我碰到下面的代碼,其邏輯符合我的要求,在一定程度上樣品的UI,但它會打開新的面板

import wx 
import wx.grid as gridlib 


class PanelOne(wx.Panel): 
"""""" 


def __init__(self, parent): 
    """Constructor""" 
    wx.Panel.__init__(self, parent=parent) 
    txt = wx.TextCtrl(self) 


class PanelTwo(wx.Panel): 
"""""" 

#---------------------------------------------------------------------- 
def __init__(self, parent): 
    """Constructor""" 
    wx.Panel.__init__(self, parent=parent) 

    grid = gridlib.Grid(self) 
    grid.CreateGrid(25,12) 

    sizer = wx.BoxSizer(wx.VERTICAL) 
    sizer.Add(grid, 0, wx.EXPAND) 
    self.SetSizer(sizer) 


class MyForm(wx.Frame): 

#---------------------------------------------------------------------- 
def __init__(self): 
    wx.Frame.__init__(self, None, wx.ID_ANY, 
         "Panel Switcher Tutorial") 

    self.panel_one = PanelOne(self) 
    self.panel_two = PanelTwo(self) 
    self.panel_two.Hide() 

    self.sizer = wx.BoxSizer(wx.VERTICAL) 
    self.sizer.Add(self.panel_one, 1, wx.EXPAND) 
    self.sizer.Add(self.panel_two, 1, wx.EXPAND) 
    self.SetSizer(self.sizer) 


    menubar = wx.MenuBar() 
    fileMenu = wx.Menu() 
    switch_panels_menu_item = fileMenu.Append(wx.ID_ANY, 
               "Switch Panels", 
               "Some text") 
    self.Bind(wx.EVT_MENU, self.onSwitchPanels, 
       switch_panels_menu_item) 
    menubar.Append(fileMenu, '&File') 
    self.SetMenuBar(menubar) 


    def onSwitchPanels(self, event): 
    """""" 
    if self.panel_one.IsShown(): 
     self.SetTitle("Panel Two Showing") 
     self.panel_one.Hide() 
     self.panel_two.Show() 
    else: 
     self.SetTitle("Panel One Showing") 
     self.panel_one.Show() 
     self.panel_two.Hide() 
    self.Layout() 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame =MyForm() 
    frame.Show() 
    app.MainLoop() 

回答

0

我會強烈建議檢查出的wx.Listbook控制。有一個在wxPython的演示一個很好的例子,或者你也可以看看這個tutorial

還有對wxPython wiki

教程