如何将模型面板添加到在 Maya PySide 的设计器中创建的布局
How to add model panel to layout created in designer in maya PySide
我正在创建一个脚本,我想将模型面板放置在 QtDesigner 中创建的 grig 布局中。
模型面板必须放在红色区域。我试过了
cmds.setParent(self.LAY_grid_modelEditor)
cmds.modelPanel('testEditor', cam='persp')
cmds.setParent('..')
但出现错误
RuntimeError: setParent: Object '' not found.
我在 Maya 2015 中使用 PySide。
任何帮助...
这段代码实际上是我从 http://nathanhorne.com/embedding-a-maya-widget-into-a-pyqt-ui/ 中获取的,它将展示如何在 pyqt 中嵌入 maya gui。同样的方法也可以用于 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()
我正在创建一个脚本,我想将模型面板放置在 QtDesigner 中创建的 grig 布局中。
模型面板必须放在红色区域。我试过了
cmds.setParent(self.LAY_grid_modelEditor)
cmds.modelPanel('testEditor', cam='persp')
cmds.setParent('..')
但出现错误
RuntimeError: setParent: Object '' not found.
我在 Maya 2015 中使用 PySide。
任何帮助...
这段代码实际上是我从 http://nathanhorne.com/embedding-a-maya-widget-into-a-pyqt-ui/ 中获取的,它将展示如何在 pyqt 中嵌入 maya gui。同样的方法也可以用于 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()