今天讲解Maya获取Maya persp窗口的方法,希望本文对大家有所帮助
from PySide2 import QtGui,QtWidgets
import shiboken2
from maya import cmds
from maya import OpenMayaUI
from maya.app.general import mayaMixin
class ModelEditor(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
super(ModelEditor, self).__init__(*args, **kwargs)
cmds.setParent(MayaWindow)
modelEditor = cmds.modelEditor(camera=persp)
ptr = OpenMayaUI.MQtUtil.findControl(modelEditor)
widget = shiboken2.wrapInstance(long(ptr), QtWidgets.QWidget)
layout = QtWidgets.QVBoxLayout(self)
layout.addWidget(widget)
class MainWindow(mayaMixin.MayaQWidgetBaseMixin, QtWidgets.QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
modelEditor = ModelEditor(self)
self.setCentralWidget(modelEditor)
window = MainWindow()
window.show()
1,在maya里通过modelEditor可以调出maya persp的小窗口,你如果用maya内部的界面写脚本
足够你使用了。
2,我们这里说一下,如何与pyside2协同使用,如果直接使用,显然是不可能的。我们这里就要想办法
转换为pyside2的控件形式,之后添加到布局里和其他控件一起使用即可。
widget = shiboken2.wrapInstance(long(ptr), QtWidgets.QWidget)
这句就是如何转换的方法。
3,我用的maya2017,不同版本略用不同,pyside,pyside2,自己略微修改一下就可以了。