【发布时间】:2015-06-29 13:47:32
【问题描述】:
当我运行代码时,我收到以下错误第 11 行:您需要基于 shiboken 的类型。不知道我在这里做错了什么。当我只运行 GetMayaWindow() 时,它运行正常,但是在 init 中运行时,它给了我错误
import shiboken
from PySide import QtGui
import maya.OpenMayaUI as apiUI
from cStringIO import StringIO
import pysideuic
import xml.etree.ElementTree as xml
def GetMayaWindow():
ptr = apiUI.MQtUtil.mainWindow()
if ptr is not None:
return shiboken.wrapInstance(long(ptr),QtGui.QMainWindow)
def LoadUiType(ui_file):
parsed = xml.parse(ui_file)
widget_class = parsed.find('widget').get('class')
form_class = parsed.find('class').text
with open(ui_file,'r') as f:
o = StringIO()
frame = {}
pysideuic.compileUi(f,o,indent = 0)
pyc = compile(o.getvalue(),'<string>','exec')
exec pyc in frame
form_class = frame ['Ui_{0}'.format(form_class)]
base_class = eval('QtGui.{0}'.format(widget_class))
return form_class,base_class
import shiboken
from PyQt4 import QtGui,QtCore,uic
from pymel.core import *
import pymel.core as pm
from pymel import *
ui_file = "D:/Swapnil/Workspace/R&D/modellingTools/ModellingTools.ui"
list_form,list_base = LoadUiType(ui_file)
class ModellingToolsUI(list_form,list_base):
def __init__(self, parent =GetMayaWindow()):
self.window_name = 'modellingTools'
if window(self.window_name,exists = True ):
deleteUI (seld.window_name)
super(ModellingToolsUI,self).__init__(parent)
self.setupUi(self)
def run_plugin():
ex = ModellingToolsUI()
ex.show()
【问题讨论】: