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

本文介绍如何在Maya中使用PySide2创建自定义界面,并将Maya的Model Editor整合进PySide2应用程序中。通过具体代码示例展示了如何利用shiboken2将Maya的控件转换为PySide2的控件形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,自己略微修改一下就可以了。

这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佐倉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值