0

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

そして、パネル「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()」を追加してみましたが、うまくいきませんでした。どうすればこれを解決できますか?

編集:小さな質問をすべて1つの大きな質問にまとめました: https://stackoverflow.com/questions/12604139/need-tutorial-for-menubar-handling-panel-building

4

1 に答える 1

0

なぜパネルを破壊するのですか?ウィジェットを元のパネルに追加するだけです。私がすることは、サイザーに変更できるウィジェットを配置してから、サイザーまたはサイザーの子を破棄することです。パネル切り替えに関するこのチュートリアルにも興味があるかもしれません。

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

于 2012-09-26T14:26:23.397 に答える