Maya PySide2 / PySide チュートリアル

# 注意
このチュートリアルはPython 2系をベースに書かれているためMaya2022などの環境では動かないことがあります
その場合、下のコードを記述してもらいparentをNoneではなく、maya_main_window()にしてください。

from shiboken2 import wrapInstance
from maya import OpenMayaUI

def maya_main_window():
    main_window_ptr = OpenMayaUI.MQtUtil.mainWindow()
    return wrapInstance(int(main_window_ptr), QMainWindow)

class Example(QMainWindow):
    def __init__(self, parent=maya_main_window(), *args, **kwargs):

そして、毎回書かれている実行のコマンドですが下のようなコードに変えてください

def main():
    # app = QApplication.instance()
    ex = Example()
    ex.show()
    # sys.exit()
    # app.exec_()

Maya PySide2 / PySideのチュートリアルです
(基本的にPySide2とPySideに違いがない場合はPySideと呼称させていただきます。)
このチュートリアルは、Mayaユーザーを基にPySideを学んでみたいなという初学者からもうすでにバリバリ使っているぜという上級者に向けたPySideのチュートリアルになります
ベースはMayaとなりますがMayaでなくとも役に立つ情報がありますのでMayaユーザーでない初級者以上の方に役に立つ情報もあるかと思います
このチュートリアルを読めば全く触れなかった人がPySideのプログラミングができるようになる足掛かりになると思いますし、すでにPySideを使い始めて、もっと使いこなしたいという方のレベルアップに役立つかと思います

目次

概要編

概要編では概要という名の通り、PySideとはなにかという大まかな紹介をします

PySideってなに?
PySideってむずかしくないの?
PySideを使うメリットって?
PySideって商用利用できるの?
PySideとPyQtの違いは?

紹介する内容は上の5つの内容でPySideってどういうものなのかを説明していきます
なので今すぐ触りたいんだ!興味ない!って方は読み飛ばしてもらっても問題ないですし、一旦使い方を覚えてから
改めて読み直すというのもありです

Maya PySide2 / PySide チュートリアル 概要編

初学編

初学者でよく陥ることはサンプルコードを実行するとMayaが突然クラッシュするやコードは通ったがエラーが出る、エラーは出ないがWindowが表示しない
Windowが表示したけど突然後ろに回ってしまうというところになると思います
こういったところがPySideは難しいというところにつながっているのかなーと思いますが
おまじないさえ知っていれば回避できることが多いので
初学編ではそういった問題の回避方法を学びつつ、MayaでPySide2を実行する方法を学び、PySide2にある基本的なウィジェットを学習していきます

Maya PySide2 / PySide チュートリアル 初学編 ① – Mayaで実行
PySide2(PySide)をMayaで実行する方法について学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ② - コピペでうまくいかない!?
サンプルコードをコピペして、Maya上で実行したのにうまくいかないときの基本的な回避方法について学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ③ - シンプルなウィンドウ
シンプルなウィンドウを表示する方法について学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ④ - 閉じるボタンを作る
閉じるボタンがあるウィンドウの作り方と注意点について学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ⑤ - メインアプリケーションを作ろう
メインアプリケーションで使用するメニューとツールバー、ステータスバーについて学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ⑥ - レイアウト管理ってなんだろう
レイアウトについて学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ⑦ – Signals & Slotsを理解する
Signals & Slotsをざっくり学んでいきます
Maya PySide2 / PySide チュートリアル 初学編 ⑧ – Signals & Slotsを作成する
カスタムSignals & Slotsを作成していきます

初級編

QtDesignerの基本的な機能を学習しながら、vertex colorを変更するツールを作成します
Maya PySide2 / PySide チュートリアル 初級編 ① – Qt Designer を使ってみる
Maya PySide2 / PySide チュートリアル 初級編 ② – .uiをMayaで表示する
Maya PySide2 / PySide チュートリアル 初級編 ③ – GUIからMayaのコマンドを実行、BuddyやTab orderの設定方法
Maya PySide2 / PySide チュートリアル 初級編 ④ – .uiとUIのコーディングを組み合わせてみる
Maya PySide2 / PySide チュートリアル 初級編 ⑤ – データフォーマットを扱ってみる

Maya2025ではPySide6になるため、中級編以降は仕切り直しします。
記述してたコードがHDDの破壊によりすべて吹っ飛んでしまったのと、ホームページのバージョン以降に失敗したため、サイトの記事のメンテにかなり手間取っているためになります。


中級編

PySideの機能を拡張し、オリジナルのウィジェット使ったUIを作成していきます
PySideのQSSやサブコントロールなどを学習しながら、通常とは違うデザイン性のあるUIを作成をしたりします

Maya PySide2 / PySide チュートリアル 中級編 ① - ウィジェットのスタイルシートを設定してみる
Maya PySide2 / PySide チュートリアル 中級編 ② - Qt Designerでスタイルシートを設定してみる
Maya PySide2 / PySide チュートリアル 中級編 ③ - QSSででスタイルシートを設定してみる
Maya PySide2 / PySide チュートリアル 中級編 ④ - 円型のプログレスバーを作成する
Maya PySide2 / PySide チュートリアル 中級編 ⑤ - 円型のプログレスバーを継承して、円型のスライドバーを作成する

上級編

Qt MVC Model/View ProgramingとGraphics View Frameworkについて解説していきます

Maya PySide2 / PySide チュートリアル 上級編 ① - MVCの考え方
Maya PySide2 / PySide チュートリアル 上級編 ② - QListViewについて Model/View Programing
Maya PySide2 / PySide チュートリアル 上級編 ③ - QTableViewについて Model/View Programing
Maya PySide2 / PySide チュートリアル 上級編 ④ - Delegateについて
Maya PySide2 / PySide チュートリアル 上級編 ⑤ - Graphics View Frameworkについて