0

在我的初始化中,我有这个:

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

并且有一个功能可以破坏面板“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

4

1 回答 1

0

你为什么要破坏面板?您可以将小部件添加到原始面板。我要做的是将可以更改的小部件放入sizer,然后销毁sizer或sizer的孩子。您可能还对本关于面板切换的教程感兴趣:

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

于 2012-09-26T14:26:23.397 回答