Обычно, когда я запускаю скрипт с параметрами переключателя, вы выбираете параметр переключателя, а затем активируете его с помощью кнопки. Раньше я оставлял свой графический интерфейс меню вне функции: но с тех пор, как я научился импортировать сценарии Maya, я начал оборачивать свои интерфейсы меню в функцию графического интерфейса, что означает, что моя техника переключателей больше не работает. Я понятия не имею, как заставить его работать. Сам сценарий достаточно прост: просто выберите параметр переключателя после импорта сценария, а затем создайте фигуру с помощью кнопки: по крайней мере, так это ДОЛЖНО работать. Вместо этого я не получаю никаких ошибок и форм, и я не знаю, что сломано.
'''
import cubeTestTemp
reload (cubeTestTemp)
cubeTestTemp.gui()
'''
import maya.cmds as cmds
#Creates ui.
if cmds.window("cubeWin", exists =True):
cmds.deleteUI("cubeWin", window = True)
myWindow = cmds.window("cubeWin",t='DS shapeDemo V1',w=200, h=500, toolbox=True)
column = cmds.columnLayout(adj=True)
#Creates variable to indicate the check box status. 1=Checked 0=Not Checked.
cubeNum1 = 0
cubeNum2 = 0
#Creates Button funtion.
def defaultButtonPush(*args):
#The Print checks if button is pushed and what is the check box status.
print "Button is pushed."
print cubeNum1
#Check box argument finds the status of the variable and determines what to do.
#Eather create a cube or display a error dialog box.
if cubeNum1 == 1:
print "Cube Creation sucessful"
cmds.polyCube()
print "Button is pushed."
print cubeNum2
if cubeNum2 == 1:
print "Sphere Creation sucessful"
cmds.polySphere()
def gui(*args):
#Creates check box.
#In the onCommand Script (onc) and offCommand Script (ofc) flags all commands must be made in between double quotes.
cmds.radioCollection()
cmds.radioButton(label='Cube',align='left',onCommand="cubeNum1 = 1", offCommand="cubeNum1 = 0")
cmds.radioButton(label='Sphere',align='left',onCommand="cubeNum2 = 1", offCommand="cubeNum2 = 0")
#Creates Button.
cmds.button( label='Execute', command=defaultButtonPush ,align='left' )
cmds.showWindow()