2016-09-14 5 views
0

Ich möchte einfachen Code mit 2 Panels schreiben. mehrere Schaltflächen auf der linken Seite und die entsprechende Seite auf der rechten Seite, die beim Klicken auf die Schaltfläche angezeigt werden. Jeder Button klickte auf die entsprechende Seite mit den notwendigen Eingabefeldern zur weiteren Bearbeitung. Ich weiß nicht, wie ich das erreichen kann. Unten finden Probe UI Referenzändern Sie mehrere Panel auf Schaltfläche klicken wxpython

http://imgur.com/a/xXP1l

ich unten Code über kam die Logik meine Anforderung zu einem gewissen Grad erfüllen, sondern es eröffnet neue Platte

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

Antwort

0

Ich würde empfehlen, die wx.Listbook Kontrolle Check-out . Es ist ein gutes Beispiel in der wxPython-Demo oder man könnte auch diesen tutorial

Besuche Es gibt auch ein Tutorial auf die wxPython wiki

Verwandte Themen