すべてのウィンドウを閉じた後も開いたままになる wxPython アプリケーションを作成しているため、新しいファイルを OSX ドック アイコンにドラッグ アンド ドロップできます (これは で行いますmyApp.SetExitOnFrameDelete(False)
)。
残念ながら、すべてのウィンドウを閉じると、OSX メニューバーには「ヘルプ」メニューしか表示されません。少なくとも [ファイル] メニューの [開く] メニュー項目を追加するか、メイン ウィンドウのメニュー バーを維持したいと考えています。これはどういうわけか wxPython で可能ですか?
実際には、wxPython 以外のハック (たとえば、pyobjc でメニューを設定し、残りの GUI を wxPython で実行する) にも満足しています。とにかく、OSX での wxPython 開発はハックです ;)
更新: Lyndsey Ferguson からのヒントを使用して、この問題を解決することができました。これが私がやったことです:
- 起動時に、すぐに表示および非表示にするウィンドウを作成します。
(-10000,-10000)
画面上でちらつかないように位置を設定しました(ああ、なんて汚いハックでしょう!) - そのウィンドウに空の EVT_CLOSE イベント ハンドラーを作成して、ウィンドウを閉じることができないようにします。
- ウィンドウを破棄するとOSXメニューがリセットされるようですが、非表示はそうではありません...したがって、最後のウィンドウが閉じられたら、このウィンドウを再度表示および非表示にする必要があります(ユーザーがウィンドウメニューまたは Cmd-`)
ええ、これは本当に醜いです...誰かがもっときれいな解決策を思いついたら、私はとても感謝しています.
更新 2:実際には、はるかに簡単な方法で解決できます。最後のウィンドウを閉じない場合は、非表示にするだけです。また、メニュー イベントに応答しないようにします。