关键字不能是表达式 - 滑块和选择菜单

keyword cant be an expression - sliders and selection menu

我正在尝试创建代码,让用户可以选择他们想要创建的基元以及对象的大小。关键字不能是表达式是我所得到的,但我找不到它所指的位置。

最初是使用移动命令创建立方体对象时的语法错误,我删除了这个,现在只有这个错误

import maya.cmds as mt

def ShowUI():

    if mt.window("Main", exists = True):
        mt.deleteUI("Main")

    mt.window("Main", title = "Maya Primitives", w = 300, h = 500)
    mt.columnLayout("MainLayout", w = 300, h =500)
    mt.optionMenu("PolygonMenu", w = 250, label = "Polygon Selection:")
    mt.menuItem(label = "Sphere")
    mt.menuItem(label = "Cube")
    mt.menuItem(label = "Cylinder")
    mt.button("Create", label = "Create", w = 300, command=ObjectCreation)
    mt.button("Delete", label = "Delete", w = 300, command=DeleteButton)
    mt.button("Clear", label = "Clear", w = 300, command=SceneClear)
    mt.showWindow("Main")

def DeleteButton(*args):
    mt.delete()

def SceneClear(*args):
    mt.delete(all=True, c=True)


def ObjectCreation(*args):
    currentValue = mt.optionMenu("PolygonMenu", query=True, value=True)
    if currentValue == "Sphere":
        SphereRadius = mt.intSliderGrp(Sphradius, q = True, Value=True)
        finalSphere= mt.polySphere(r=SphereRadius, name = "Sphere", ch=False)


    elif currentValue == "Cube":
        CubeWidth = mt.intSliderGrp(CubeW, q = True, Value=True)
        CubeHeight = mt.intSliderGrp(CubeH, q = True, Value=True)
        CubeDepth = mt.intSliderGrp(CubeD, q = True, Value=True)
        finalSphere= mt.polyCube(w=CubeWidth, h=CubeHeight, d=CubeDepth, name = "Cube", ch=False)        


    elif currentValue == "Cylinder":
        CyclinderRadius =  mt.intSliderGrp(Cylradius, q = True, Value=True)
        CyclinderHeight =  mt.intSliderGrp(CylH, q = True, Value=True)
        finalCylinder= mt.polyCylinder(r=CylinderRadius, h=CylinderHeight, name = "Cylinder", ch=False)


def SphereSlider():
    Sphradius = mt.intSliderGrp(1="Radius",min=0,max=25, field=True)

def CubeSlider():
    CubeW = mt.intSliderGrp(1="Width", min=0, max=25, field=True)
    CubeH = mt.intSliderGrp(1="Height", min=0, max=25, field=True)
    CubeD = mt.intSliderGrp(1="Depth", min=0, max=25, field=True)

def CylinderSlider():
    Cylradius = mt.intSliderGrp(1="Radius",min=0,max=25, field=True)
    CylH = mt.intSliderGrp(1="Height", min=0, max=25, field=True)


ShowUI()

如果您 post 带有堆栈跟踪的确切错误消息,这将有很大帮助。在这种情况下,它表示错误发生在第 46 行的这一行:

球形半径 = mt.intSliderGrp(1="Radius",min=0,max=25, field=True)

这意味着您使用 1="Radius" 是不正确的,因为 1 不是关键字。我想你想称它为 label="Radius".