[Maya] Designerで作った.uiをMayaで使用する [PySide]

久しぶりにテクニカルな話。
5月中になにか新しいことでも始めるかな~と思ったので、PySideを勉強し始めました。
簡単なUIを作るぐらいならPymelのコマンドで書いてしまう方が楽なのですが、複雑なUIを作ったり
TableやらTree表示やらのようなWidgetを使用したい場合なんかは
PySideが非常に強力な武器になりそうです。
とりあえずは、Designerで .uiをはいて、そこからUIを作る方法と、
右クリックでのコンテキストメニューの作成あたりまでを調べて作ってみました。

.uiファイルは → こちら

全コードはこんなかんじに。
.uiファイルを使用して読み込む場合は、47~53行目のように
QUiLoaderとQFileを使用。
QUiLoader.load(file,self) で、widgetのオブジェクトを取得したあと、
Layoutを作成して、addWidget(uiObject)とsetLayoutでDialogに乗せます。(26~28行目)

Designerで作成したWidgetには、
uiObj.objectName.XXXX のようにアクセスします。
objectNameは

UIName

DesignerのobjectNameになります。

右クリックのコンテキストを使用したい場合は、31~35行のように

こんな感じで書くとできるようです。
テストコードだと、RowとColumnを追加するコンテキストメニューを作ってみました。

Mayaで使用する場合は、10~12行目のようにmainWindowのインスタンスを取得して
それをparentに設定することで、WindowがMayaのWindowより後ろに行かないようにできるようです。
shibokenは、PySideの中に含まれているらしいですが、私が手に入れたPySideだとShibokenは入っていなかったので、
pip install shiboken
で単独でインストールしました。

やはり、さくっと作るにしてはめんどくさい…ですが、出来ることは多そうです。
しばらくは、いろんなWidgetを試したりして
使い方やらを研究してみようかなーと思います。
日本語資料がほとんどないのでHelp読み進めるのも一苦労ですな

コメントを残す

メールアドレスが公開されることはありません。


*