2017-11-20 5 views
0

私はwx.EVT_MENUイベントを私のメインフレーム上のコールバックにバインドして、wxFrameという子をポップアップするアプリケーションを持っています(この場合、ポップアップウィンドウはモードレスにしたいと思っています)。コールバックは次のようになります。ローカルスコープで作成されたwxPythonのモードレスフレームは、実際に破棄されるのはいつですか?

このコードは、イベントが実際にやり取りできるフレームをポップアップするという意味で機能します。しかし、私はそれがうまくいくか少し驚いています。確かに、私のモードレスフレームの本質のために、私はon_open_my_frameメソッドの範囲から一度私のlocal_frameにガベージコレクタが作用すると期待します。そのコードは有効ですか?つまり、表示されるまでウィンドウが破壊されるのを防ぐ何らかの仕組みがwxPythonですか?

+1

「自己」の子になって参照が保持されるため、ガベージコレクションされていないと見なします – user2682863

答えて

1

GUIフレームワークは、イベントループが連続して実行されるイベントベースであるという点で、他のアプリケーションと少し違って動作します。したがって、フレームを起動して表示すると、フレームはユーザーが何かをするのを待っているだけです。言い換えれば、作成するウィジェットは、ユーザーがユーザーと対話してイベントを生成するのを待ちます。

フレームを終了する唯一の方法は、作成したframeインスタンスに、明示的にClose()またはDestroy()というインスタンスを指定することです。さもなければ、フレームはユーザが他の何らかの方法でそれを閉じたり、それと対話するのを待つ。

関連する問題