类呼叫功能不起作用

时间:2014-02-14 11:08:32

标签: python class maya calling-convention

我试图通过调出导入窗口来修改这段代码,然后按照此代码进行修改。

由于我还将使用当前的一段代码(不是由我编写的),它的工作方式是当用户选择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')

有任何建议吗?

1 个答案:

答案 0 :(得分:0)

问题在于:

如果allItem&lt; 2:     test = MainWindow() 其他:     打印('测试')

allItems = pm.ls(type="prItems")

if allItem < 2 :
    test = MainWindow()

pymel.core.ls返回list2int。 Python可能无法达到您的期望。 From the docs

  

除数字外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。

所以,"list" > "int"


您可能要做的是检查len的{​​{1}},如下所示:

allItem