如何在maya PySid中将模型面板添加到在designer中创建的布局

2024-09-22 18:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个脚本,我想在QtDesigner创建的grig布局中放置一个模型面板。在

enter image description here

模型面板必须放置在红色区域。我试过了

cmds.setParent(self.LAY_grid_modelEditor)
cmds.modelPanel('testEditor', cam='persp')
cmds.setParent('..')

但是得到了错误

RuntimeError: setParent: Object '' not found.

我在Maya 2015中使用PySide。在

任何帮助。。。在


Tags: 模型self脚本面板区域布局gridcmds
1条回答
网友
1楼 · 发布于 2024-09-22 18:24:30

这段代码实际上是我从http://nathanhorne.com/embedding-a-maya-widget-into-a-pyqt-ui/获得的,它将展示如何在pyqt中嵌入mayagui。这种方法也可以用于pyside。我修改了这个示例代码,现在它将加载一个modelPane

import maya.OpenMayaUI as apiUI
from PyQt4 import QtGui, QtCore
import sip

def getMayaWindow():
    ptr = apiUI.MQtUtil.mainWindow()
    return sip.wrapinstance(long(ptr), QtCore.QObject)

def toQtObject(mayaName):
    '''
    Given the name of a Maya UI element of any type,
    return the corresponding QWidget or QAction.
    If the object does not exist, returns None
    '''
    ptr = apiUI.MQtUtil.findControl(mayaName)
    if ptr is None:
        ptr = apiUI.MQtUtil.findLayout(mayaName)
    if ptr is None:
        ptr = apiUI.MQtUtil.findMenuItem(mayaName)
    if ptr is not None:
        return sip.wrapinstance(long(ptr), QtCore.QObject)

class MayaSubWindow(QtGui.QMainWindow):
    def __init__(self, parent=getMayaWindow()):
        super(MayaSubWindow, self).__init__(parent)
        self.modelPne = cmds.modelPanel('testEditor', cam='persp')
        qtObj = toQtObject(self.modelPne)
        self.setCentralWidget(qtObj)

myWindow = MayaSubWindow()
myWindow.show()

相关问题 更多 >