在我的 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
答案 0 :(得分:0)
你为什么要摧毁这个小组?您只需将小部件添加到原始面板即可。我要做的是将可以改变的小部件放入sizer,然后只是销毁sizer或sizer的子节点。您可能还对本面板切换教程感兴趣:
http://www.blog.pythonlibrary.org/2010/06/16/wxpython-how-to-switch-between-panels/