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. 【Patreon限定】三平方の定理を利用したSticky Lipsリグのサンプル配布

    2021-02-08

  2. NURBSの使い方 for リガー

    2021-08-10

  3. Dashスクリプトで等間隔&ランダム配置

    2022-10-13

  4. Bifrostでレイキャストしてみよう!

    2020-12-18

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

コメント

ABOUT

テクニカルアーティストの為のまとめサイトです。

本サイトでは、『YouTube ✕ Blog』を中心に
情報発信をしていきます。

また、テクニカルアーティストとしての様々な
ライフハック記事も投稿予定です。

限定情報会員

PATREONでは、限定情報やサンプルファイルの配布も行っています。登録頂けると更新頑張れます。支援の方よろしくお願いします。


免責事項

本ウェブサイト内で公開している全ての情報の有用性や安全性については当方は一切の保証を与えるものではありません。
利用したことによって引き起こる直接および間接的な損害に対して当方は一切責任を負うものではありません。
全て自己責任でご使用ください。

3DCGBOOK出版

BOOTHで技術書を販売利しております。







スポンサー

ページ上部へ戻る