2012-01-11 19 views
0

一部のボタンの機能を作成しようとしています。私はこれが動作しますが、すべてのボタンのために良いではありません。この内部に文字列を作成する方法

def setSmValue (self, attr): 
    selection = mc.ls(sl=True) 
    lightShapes = [mc.pickWalk(shape, direction="down")[0] for shape in selection if mc.nodeType(mc.pickWalk(shape, direction="down")) in ['directionalLight','pointLight','spotLight','areaLight']] 
    mc.select(selection, r=True) 
    value = mc.textFieldButtonGrp(self.smapResolutionField, q=True, text=True) 
    for l in lightShapes: 
     mc.setAttr('%s.%s' % (l, attr), float(value)) 

を書いた各ボタンに1つを作成する必要はありません。私は私が考えることができるすべてをしようと試みたが、私はあまりにもはっきりと自己の使用を理解していないように思える

('self.%s' % attr) 

のようなものに

self.smapResolutionField 

を変更したいと思います:)

どれでもヒント?

おかげ

編集:私はおそらく私はTextFieldを照会し、そのコマンドを使用していることを言及するのを忘れてしまった(ユーザーが値を入れて、私はそれをリードバックする必要があります)

+1

をあなたは 'GETATTR(自己、ATTR)'をお探しですか? –

+0

自己は、このオブジェクトと同じである「自己。%s」をあなたがそう 'のeval(「セルフ。%s」は%attrが)'あまりにもトリックを行いますが、それはいつでもお勧めしません文字列 – avasal

+0

としてそれを治療することを意味します。 .. –

答えて

1

あなたが使用することができます。それを得るために:)

+0

素早い答えのためにFelixに感謝しますが、それは私のために働いていません! 私は形でTextFieldを照会しようとしている属性は、あなたが私の最初のポスト – nookie

+0

に私は1つがあまりにもまだないしようと試みていることがわかります 「テキスト」になりながら、オブジェクトが 「self.smapResolutionField」になりますワーキング。これは私が得るエラーです #mrShadowMapChangerUIインスタンスには 'smapResolution'属性がありません #トレースバック(最新のコールが最後): #ファイル "/home/users/luca/maya/scripts/mrShadowMapChanger.py"、行47、in __call__ #return self.func(* self.args、** self.kwargs) #ファイル "/home/users/luca/maya/scripts/mrShadowMapChanger.py"、36行目、setSmValue内 #value = mc.textFieldButtonGrp(GETATTR(自己、ATTR)、Q =真、テキスト=真) #1はAttributeError:mrShadowMapChangerUIインスタンスが何の属性を持っていない 'smapResolution' # – nookie

+0

だからあなたの問題は* *取得一部、または*セットであるです*一部? –

1

だけsetattr()getattr()ビルトインを使用し

getattr(self, attr) 

setattr(self, 'smapResolutionField', some_value) 

を取得するには:設定するには

getattr(self, 'smapResolutionField') 
+0

おかげTadeckが、私はこれが私のために働いていない他のポストにしたとして:( たぶん私は何か – nookie

+0

@nookieを欠けている:あなたは 'mc.setAttr( '%sに言及している場合は、私は従っていません。 %s'は%(L、ATTR)、フロート(値))​​ '、あなたは間違ってそれをやっているし、それは私が提供してきた方法で起動する必要があります。正確に何を読む/変更しようとしている?より記述してください。 'mc.selfを設定/取得しますか?smapResolutionField'プロパティ? – Tadeck

関連する問題