2016-02-25 37 views
0

我想設置值取決於所選的單選按鈕並在其他函數中使用該值。 無論我嘗試,我總是得到相同的答案從單選按鈕在Python中傳遞變量

NameError:全局名稱沒有定義「TX」#

import maya.cmds as cmds 
from functools import partial 

winID='MSDKID' 

def init(*args): 
    print tX 
    print tY 
    print tZ 
    print rX 
    print rY 
    print rZ  
    return 

def prozor(): 

    if cmds.window(winID, exists = True): 
      cmds.deleteUI(winID); 
    cmds.window() 
    cmds.columnLayout(adjustableColumn=True, rowSpacing=10) 
    cmds.button(label = "Init") 
    cmds.button(label = "MirrorSDK",command=init) 
    cmds.setParent('..') 
    cmds.setParent('..') 

    cmds.frameLayout(label='Position') 
    cmds.columnLayout() 
    collection2 = cmds.radioCollection() 
    RButton0 = cmds.radioButton(label='Behavior') 
    RButton1 = cmds.radioButton(label='Orientation') 
    cmds.button(l='Apply', command = partial(script,RButton0,RButton1,)) 
    cmds.setParent('..') 
    cmds.setParent('..') 
    print script(RButton0,RButton1) 
    cmds.showWindow() 

def script(RButton0,RButton1,*_cb_val): 
    X = 0 
    rb0 = cmds.radioButton(RButton0, q = True, sl = True) 
    rb1 = cmds.radioButton(RButton1,q = True, sl = True) 
    if (rb0 == True): 
     tX = -1 
     tY = -1 
     tZ = -1 

     rX = 1 
     rY = 1 
     rZ = 1 

    if (rb1 == True): 
     tX = -1 
     tY = 1 
     tZ = 1 
     rX = 1 
     rY = -1 
     rZ = -1 
     return tX,tY,tZ,rX,rY,rZ   

prozor() 

回答

0

script()所定義的變量是局部的功能。其他功能沒有看到它們。

如果您需要多個UI元素來共享數據,您可能需要創建一個類來讓它們共享變量。一些參考文獻herehere