获取Maya persp窗口的方法(PySide2)

版权声明:zhaojanc https://blog.csdn.net/qq_38641985/article/details/81542094
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,自己略微修改一下就可以了。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_38641985/article/details/81542094