我试图通过调出导入窗口来修改这段代码,然后按照此代码进行修改。
由于我还将使用当前的一段代码(不是由我编写的),它的工作方式是当用户选择3个前缀之一['a','b','c'时],它将相应地更改Maya中项目的命名。
前编码的一部分(前缀窗口):
import maya.cmds as cmds
import maya.mel as mel
import pymel.core as pm
from PyQt4 import QtGui, QtCore
import sys, os
class createUI(QtGui.QFrame):
def __init__(self, parent=None):
QtGui.QFrame.__init__(self, parent)
self.shot = SHOT
self.initUI()
self.connections()
class MainWindow(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.resize(400,100)
self.move(300,300)
self.setWindowTitle('Select the prefix of rexPass')
self.pubDock = createUI()
vLayout = QtGui.QVBoxLayout()
vLayout.addWidget(self.pubDock)
self.setLayout(vLayout)
self.createConnection()
def createConnection(self):
self.connect( self.pubDock.cancelButton, QtCore.SIGNAL( "clicked()" ), self.close )
self.connect( self.pubDock.OKButton, QtCore.SIGNAL( "clicked()" ), self.close )
def setupRenderGlobals():
cmds.setAttr ('StartRange.multiFrame', 1)
cmds.setAttr ('EndRange.endFrame', 200)
cmds.setAttr ('WidthRes.xres', 1920)
cmds.setAttr ('HeightRes.yres', 1080)
def main():
setupRenderGlobals()
global app
app=QtGui.qApp
global form
form = MainWindow()
form.show()
目前我想添加一个函数,它调用一个选择窗口来导入一些东西,一旦选择完成,它就会调出上面的代码。
我遇到的问题是当用户点击导入窗口中的导入按钮时,它会自动关闭,并且没有显示perfix窗口,或者我会显示2个窗口或只显示前缀窗口而不是导入窗口
我的编码:
class Processing():
'In-house code to call out the import window and they will have the name of 'prItems_a01''
importItems = procureItems.api.importItem()
allItems = pm.ls(type="prItems")
if allItem < 2 :
test = MainWindow()
else:
print ('testing')
有任何建议吗?
答案 0 :(得分:0)
问题在于:
如果allItem&lt; 2: test = MainWindow() 其他: 打印('测试')
allItems = pm.ls(type="prItems")
if allItem < 2 :
test = MainWindow()
pymel.core.ls
返回list
,2
为int
。 Python可能无法达到您的期望。 From the docs:
除数字外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。
所以,"list" > "int"
您可能要做的是检查len
的{{1}},如下所示:
allItem