我有這樣的代碼來創建一個接口和一些按鈕(在Maya中的Python)創建一個變量名動態
class mrShadowMapChangerUI:
def __init__(self):
smAttrs = ['shadowMap','smapResolution','smapSamples','smapSoftness','smapBias']
smNiceAttrs = ['Active','Resolution','Samples','Softness','Bias']
attrs = zip(smAttrs,smNiceAttrs)
self.form = mc.columnLayout()
self.smapResolutionField = mc.textFieldButtonGrp( label=attrs[1][1], text=int(defaultLightValues[1]), bc=Callback(self.setSmValue, attrs[1][0]))
self.smapSamplesField = mc.textFieldButtonGrp( label=attrs[2][1], text=int(defaultLightValues[2]), bc=Callback(self.setSmValue, attrs[2][0]))
self.smapSoftnessField = mc.textFieldButtonGrp( label=attrs[3][1], text=('%.3f' % defaultLightValues[3]), bc=Callback(self.setSmValue, attrs[3][0]))
self.smapBiasField = mc.textFieldButtonGrp( label=attrs[4][1], text=('%.3f' % defaultLightValues[4]), bc=Callback(self.setSmValue, attrs[4][0]))
,我想將它變成像這樣的東西自動,知道他們創建的按鈕名字(所以我以後可以查詢他們)
class mrShadowMapChangerUI:
def __init__(self):
smAttrs = ['shadowMap','smapResolution','smapSamples','smapSoftness','smapBias']
smNiceAttrs = ['Active','Resolution','Samples','Softness','Bias']
attrs = zip(smAttrs,smNiceAttrs)
self.form = mc.columnLayout()
for attr in attrs:
self.('%s' % attr[0]) = mc.textFieldButtonGrp( label=attr[1], text=int(defaultLightValues[1]), bc=Callback(self.setSmValue, attr[0]))
mc.showWindow(self.window)
我真的有理解這一切的煩惱「自我」。工作流程,所以可能我失去了一些基本的東西,但所有我迄今爲止所嘗試的都沒有工作:S
謝謝!
非常感謝。我昨天有同樣的問題,但與getattr,似乎我需要多一點時間來了解這些:) 再次感謝 – nookie 2012-01-12 07:20:39