2012-03-02 20 views
2

タイトルは面白いです、私は知っています。そのような映画 "インセプション"の状況。夢の夢の中で夢。 こんにちは皆、私はwxpythonを使ってアプリを作っています。 私はこのような何かを達成したい。(これは、問題の単なるアイデアです)wxPythonでの "インセプション"の状況

func1(self,event): 
     some widgets added 
     func2 
func2(self,event): 
     remove previous widgets (by using event.GetEventObject().GetParent().Hide()) 
     add new ones 
     func3 
func3(self,event): 
     remove widgets added in func2 
     recall widgets added in func1 (event.GetEventObject().GetParent().Show()) 

私はイベントのないトラックを持っていない他のネストされた 機能への機能から飛び降り3回のように、内部にすぎ横断しました。

私は

event.GetId() 

で(リスト内の)イベントのIDを格納する場合は、すべての機能に横断しながら、私は

event.GetEventObject().GetParent().Show() 
event.GetEventObject().GetParent().Hide() 

を交換 にこれらのIDを使用することができれば、方法があります

id1.GetEventObject().GetParent().Hide() 
id2.GetEventObject().GetParent().Show() 

私はこの種のことを知りたいだけですか? もっと簡単な方法ですか?

答えて

0

いずれかが、まだ、このようなトラブルになっている場合、私はいくつかの方法を発見した...すべての まず、あなたがこのためにIDを使用する必要はありません.....はるかに簡単な方法は、別のパネルを作成 です...あなたは1を非表示にする場合には..... 、あなたは単にあなたが別のを見せたい

panelname.Hide() 

panelname.Show() # Or this also works (event.GetEventObject().GetParent().Show()\Hide()) 

注を行うことができます:1)すべてのウィジェットに(ボタンなどを与えることを忘れないでください)個々のID(または-1が実行されます)。 2)関数呼び出しでオーバーラップパネルを作成することもできます(例:ボタンをクリックした後)。 3)また、共通のパネル(親パネル)を作成し、子パネルを作成してinit本文に作成することもできます。そして、あなたはバインドされた機能(ボタンなどであるかもしれない)でこれらのパネルを単に隠して表示することができます。

私はこのような問題を解決しました。 GetId()を使用する必要はありませんでした。しかし、他の方法があるかもしれません。他のアイデアがあれば共有してください。いつか誰かに助けてくれることを願っています...ありがとうございました。

関連する問題