2016-09-16 10 views
0

ノートブックのページを動的に作成して削除したい。メインクラスでは、ボタンを使ってページを作成して追加することに成功しました。ページはもちろん、別のクラスで、内部にボタンがあります。 ボタンをノートブックの外に置き、メインクラスから削除することができますが、私はページのそれ自身のボタンを使用してページ全体を消滅させたいので、もう必要ありません。wx.Notebookの自己削除ページ

申し訳ありませんコードを投稿するのではなく、携帯電話から投稿しています。また、最小限の作業例を必要とするほど具体的ではない質問のようです。

答えて

0

あなたが推測したように、自分のイベントハンドラからUIオブジェクトを破壊するときは注意が必要です。現在のイベントハンドラはまだアクティブですが、キューにまだ残っている他の保留中のイベントが存在する可能性があります。また、ターゲットオブジェクトが配信時に破棄された場合、クラッシュする可能性があります。

現時点で起こっている可能性のある保留中のイベントハンドラが完了し、実行したい破壊を除いてUIオブジェクトで処理するのを待つことがない限り、破棄を延期することをお勧めします。それを行う最善の方法はwx.CallAfterを使用することです。次にイベントループが空になったときに渡すパラメータを持つ関数を呼び出します。暗黙のうちに、処理待ちのUIオブジェクトや問題のUIオブジェクトに送信されるものは何もありません。

あなたの場合、すぐにノートブックからページを削除し、ページウィンドウを非表示にするなどの作業は安全です。次に、wx.CallAfterを使用して、ページウィンドウのDestroyメソッドを呼び出して、必要な他のクリーンアップを実行する、ノートブッククラスの関数を呼び出します。これらの2つのタスクを分割することが推奨される理由は、関数が呼び出されるまでに時間がかかるためではありませんが、場合によっては一時的な状態で瞬間的に瞬間的にちらつくほど長くなる可能性があるため、ユーザー。

関連する問題