2016-09-14 11 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のデモでは良い例があるか、またwxPython wiki

のチュートリアルもあり、この tutorial

をチェックアウトすることができ

関連する問題