Pyside勉強 その七
今回はQtdesignerを使って簡単な画像付のUIを作成し
それをMAYAとリンクさせるところまでやってみたいと思います。
はじめにUIファイルを作成します。
こんな感じの簡単なやつでいきます。
内容的にも簡易です。
widget作って、今回はQLabelを配置。
名前を【BackGound】としてしておきます。
さらにpixmapにDドライブ直下においている、適当な画像を指定しています。
今回はローカルにあった将軍の画像。
※将軍やらないとなぁ・・・
最後にPushButtonを配置し、表示テキストを
【Hellow】として、Dドライブ直下にUIという名前で保存します。
次はMAYA側。
以下のコードになります。
from PySide.QtCore import * from PySide.QtGui import * from PySide.QtUiTools import QUiLoader from maya.app.general import mayaMixin class Image(mayaMixin.MayaQWidgetBaseMixin,QDialog): def __init__(self, parent = None): super(Image, self).__init__(parent) self.UIPanel = QUiLoader().load("D:/UI.ui",parentWidget=self) self.UIPanel.BackGound.setPixmap(QPixmap("GR.jpg")) self.UIPanel.pushButton.clicked.connect(self.test) def test(self): print "Push!" Window = Image() Window.UIPanel.show()
実行するとMAYAではこうなります。
新たに追加された部分を説明します。
from PySide.QtUiTools import QUiLoader
UIファイルを読み込むモジュールです。
これ以外にも読み込み方はありますが、今回はこれを使います。
クラス定義する際に、
mayaMixin.MayaQWidgetBaseMixin
の記載は忘れずに。
self.UIPanel = QUiLoader().load("D:/UI.ui",parentWidget=self)
QUiLoader().load これがUIファイルを読み込むメソッドになります。
シンプルに読み込んでます。
parentWidget=selfここが重要になります。
簡単なんですが、parentWidgetなので親のウィジェットを指定しています。
Selfなので、class Imageが親になります。
絵にするとこんな感じ。
parentWidgetでSelfをしているすることで、【UIPanel】
がMAYAの後ろにいかなくなります。
self.UIPanel.BackGound.setPixmap(QPixmap("D:/GR.jpg"))
ここでQtDesinerで指定した画像がリンク切れを起こしてますので
サイド設定しています。
ほかは特に記載の必要がないと思います。
こんな感じでUIファイルを読み込みます。
次はUIファイルにボタンを追加してますので
マウスジェスチャーを入れてみようかともいます。
以上です。