Maya PySide2 .uiを使うほうがいいのか?それともpython化して利用する方がいいの?

Tips,PySide,PySide2,Python,PySide6,Qt,Maya

たまに.uiを使うほうがいいのか?それとも PySide2やPySide をpython化して利用する方がいいの?といった質問をいただくことがあります。
今回は私なりのそれぞれのメリットとデメリットを回答していこうと思います

Pythonの場合

メリット

ObjectNameで同じものが利用できる
拡張しやすい
PySideの記述方法を理解しやすい

デメリット

属人化しやすく、複雑になりやすい
変更に時間がかかることがある
PythonがわからないとGUIを作れない

.uiの場合

メリット

PythonがわからなくともGUIを作れる
役割分担しやすい
属人化しずらく、シンプル
レイアウト変更など変更が素早くしやすい
.uiのテンプレートなどの共有がしやすい

デメリット

.uiでの拡張は難しい(特にDelegeteなど)
PySideの深いところまで理解するのが難しい(特にevent周り)
QtDesigner上などではObjectNameがすべて違うものになる

pythonで記述する場合はいろんな拡張やPySideを深く知れるため、個人で見たときはいい面もあるのですが業務においては共同で制作したり、誰かが書いたコードを引き継いだりすることも多く、また速度を求められることがあるため、GUIをすべてPythonコードで書くというのはあまりお勧めできません
その点.uiの場合は仮にGUIを作るのが苦手やアーティストの方にこんなUIを作って欲しいとお願いしてもらうということもでき、役割分担もしやすいですし、GUIの部分は.uiで呼び出しと、実行コードは別々に機能分離するといった形で設計した場合、比較的シンプルな構造にできますし、誰かが引き継ぐ際や誰かと一緒にコードを書くといった際にとてもやりやすくなります
もちろんPythonで記述した拡張したPySideのクラスを.uiを呼んでいるpythonのクラスに呼び出すこともできます

長いことPySideとお付き合いしてきましたが側は.uiで用意し、その中に拡張したPySideを配置していくといった形に今は収まっています
もちろん、PySideをもっと使っていきたいんだといった場合はあえて記述をするということもあるかもしれませんが
重要なのは業務なのか、個人的な勉強なのかまた速度を求められるものなのか、機能分離が必要なのか、シンプルにするのか、また規模間などによって選択していく方がいいでしょう

また、近い将来はSubstanceなど特定のDCC Toolではqmlが利用されていたりしますし.uiではなく.qmlを使ってGUIを作っていくかもしれませんね

Qt Design Studio
Qt Design Studioは、デザイナーと開発者に向けたUIデザイン開発ツールとして、単純なプロトタイピングから複雑で美しいユーザエクスペリエンスの作成までサポートします。また、デザイナーと開発者がQt Design Studioを利用することで、よりシンプルで合理的なUIデザイン開発プロセスを実現することができます。(引用: Qt Design Studio 2.0をリリース
2022年7月9日現在はQt Design Studio 2.3 がリリースされており、Adobe XD Qt Bridgeが提供されている
バージョンが頻繁にアップデートされており今後が期待
20220709_01