Autodesk Maya でツールを開発しています。私が構築するツールの多くには、アニメーターやモデラーが使用するためのシンプルなウィンドウ GUI があります。これらの GUI には、多くの場合、基本的なウィンドウで通常表示されると予想されるものが含まれています。ラベル、リスト、メニュー、ボタン、テキストフィールドなど。ただし、利用可能なツールで構築できる UI の複雑さには制限があり、特に利用可能なウィジェットの種類には制限があります。
ListView (グリッド)、ツリーなど、より高度な wxPython ウィジェットの使用に興味があります。これには、完全な wxFrame (ウィンドウ) を使用して UI 全体を表示することが含まれます。これは、基本的に、ウィンドウがもはや存在しないことを意味します。マヤと結ばれます。大した問題ではありませんが、Maya が最小化されている場合、ウィンドウがそれに追随しません。
テストとして tkinter を使用して以前にこのようなことを試したことがありますが、独自のスレッドで実行するには MainLoop が必要であることがわかりました。これは論理的ですが、私の場合、Maya 自体のスレッドと競合するため、基本的にウィンドウが閉じられるまで Maya がハングアップします。これは、MEL であれ Python であれ、Maya がすべてのスクリプトをメインの Maya GUI が共有する単一のスレッドで実行するためです。これは、別のスクリプトが同じオブジェクトに対して作業を行おうとしているときに、あるスクリプトがオブジェクトを削除することを防ぐためです。
wxPython には、これと同じ「メインループ」方法論があります。Maya 内で機能するように回避する方法があるかどうか疑問に思っていますか?