Qt DesignerでサクッとGUI作っちゃおう!

PySideでGUIを作る簡単な方法です。

PySideのQtDesignerを使えば、MayaのGUIを簡単に作ることができます。
またMayaQWidgetBaseMixinを使うことで余計なことを考えることなくGUIも作れちゃいます。

便利なものを組み合わせてお手軽にGUIを作っちゃいましょう!

管理人がYouTubeで解説!

PySideをインストールする

pip install pyside

これでインストールできますが、Pythonの設定周りがよくわからない!って方は以下を参考にすると良いでしょう。
環境変数PATHを設定する | Python入門 – Let’sプログラミング

pipが使えるようになる…というのもプログラムわからん時代の私にはハードル高かったので…。

Maya2020がPython27なのでPython27でPySideをインストールしましょう。
無事インストールできたら、Python27\Lib\site-packages\PySideの中にdesigner.exeが存在します。

そもそもPySideって何よ?って方はWikiを参照下さい。
PySide – Wikipedia – ウィキペディア

今回作ったサンプルコード

# -*- coding: utf-8 -*-
import os
from maya import cmds
from PySide2 import QtWidgets
from PySide2.QtUiTools import QUiLoader
from maya.app.general.mayaMixin import MayaQWidgetBaseMixin

# designer.exeで作ったUIファイルを取得する
CURRENT_FILE = os.path.normpath(__file__)
path, ext = os.path.splitext(CURRENT_FILE)
UI_FILE = path + ".ui"

class TRSConnectorWindow(MayaQWidgetBaseMixin, QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super(TRSConnectorWindow, self).__init__(*args, **kwargs)

        # 作ったUIファイルをロードして変数に入れる
        self.widget = QUiLoader().load(UI_FILE)
        self.setWindowTitle(self.widget.windowTitle())

        # QMainWindowの中央のウィジェットに入れる
        self.setCentralWidget(self.widget)

        # ボタンとのコネクションを作る
        self.widget.pb_t.clicked.connect(self.clicked_connect_translate)
        self.widget.pb_r.clicked.connect(self.clicked_connect_rotate)
        self.widget.pb_s.clicked.connect(self.clicked_connect_scale)

    def clicked_connect_translate(self): # 移動を接続する関数
        src, dst = cmds.ls(os=True)
        cmds.connectAttr("{}.translate".format(src), "{}.translate".format(dst))

    def clicked_connect_rotate(self): # 回転を接続する関数
        src, dst = cmds.ls(os=True)
        cmds.connectAttr("{}.rotate".format(src), "{}.rotate".format(dst))

    def clicked_connect_scale(self): # スケールを接続する関数
        src, dst = cmds.ls(os=True)
        cmds.connectAttr("{}.scale".format(src), "{}.scale".format(dst))

関連記事

  1. レイキャストを使った目線リグの作り方

    2021-12-18

  2. PyMELのススメ

    2020-12-21

  3. objectSetを使ってチェックツールを発展させよう!

    2021-12-06

  4. Substance DesignerのPythonを使ってみたけど…のお話

    2021-01-26

コメントをお待ちしています。

コメント

ページ上部へ戻る