如何重建面板

时间:2012-09-25 19:47:35

标签: wxpython

在我的 init 中,我有这个:

def __init__(self,parent,id):
    wx.Frame.__init__(self,parent,id,self.title,size=wx.DisplaySize())
    self.newpanel=wx.Panel(self,size=wx.DisplaySize())

并且有一个功能会破坏Panel“newpanel”并重建它(并在其中放置一些按钮等):

def newpanelbuild(self,event):
    self.newpanel.Destroy()
    self.newpanel=wx.Panel(self,size=wx.DisplaySize())
    # creating some wx.Buttons, wx.TextCtrl's & wx.Choice

当我运行程序时,我没有收到错误,当“newpanelbuild”事件被激活时,会显示正确的面板 - 但是我无法单击按钮,textctrl&下拉菜单...看起来面板在后台/没有焦点。所以我尝试添加“self.newpanel.SetFocus()”,但它没有帮助。我该如何解决这个问题?

编辑: 我只是把所有的小问题都集中在一个大问题上:​​https://stackoverflow.com/questions/12604139/need-tutorial-for-menubar-handling-panel-building

1 个答案:

答案 0 :(得分:0)

你为什么要摧毁这个小组?您只需将小部件添加到原始面板即可。我要做的是将可以改变的小部件放入sizer,然后只是销毁sizer或sizer的子节点。您可能还对本面板切换教程感兴趣:

http://www.blog.pythonlibrary.org/2010/06/16/wxpython-how-to-switch-between-panels/