2015年7月13日 星期一

Maya 2015 的 ui mixin class 讓你可以很輕鬆把一個 ui widget 變成 maya 介面的 dockable item

現在在 maya 裡寫 python 的 qt ui 比以前方便多了。2014版本開始把 pyside 完全包在 maya 裡,2015 版本更是加了一些 mixin class 讓寫 pyside ui 簡單許多,其中一個 mixin 就是 MayaQWidgetDockableMixin . 這個 mixin class 讓你繼承他之後可以 生成一個 widget 然後直接用 .show(dockable=True) 讓它顯示成 maya ui 的 dockable item.


簡單的 UI 範例 :
from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
from PySide import QtCore, QtGui

class MyWidget(MayaQWidgetDockableMixin,QtGui.QWidget):
    def __init__(self,parent=None):
        super(MyWidget, self).__init__(parent=parent)
        
        self.setWindowTitle("my widget")
        
        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)
        
        btn1 = QtGui.QPushButton("run this")
        layout.addWidget(btn1)
        
        btn2 = QtGui.QPushButton("run that")
        layout.addWidget(btn2)
        
        spacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
        layout.addSpacerItem(spacer)


newWidget = MyWidget()
newWidget.show(dockable=True)
        
        


效果:



Maya PySide UI 參考資料:




沒有留言:

張貼留言