2017-03-22 4 views
0

このコードはpythonでMayaのウィンドウ用に作成された3つのラジオボタンを照会する必要があります。これは私が今まで持っているコードですが、スライダーを照会できますが、ラジオボタンを照会する方法はありません...Pythonでラジオボタンコレクションを照会する方法は?

import maya.cmds as cmds 

#def function1(value): 
def function1(value1,value2): 
    print(value1) 

def function2(value): 
    print(value) 


def createUI(): 
    cmds.window("Window") 
    cmds.columnLayout(adjustableColumn=True) 
    value1 = cmds.intSliderGrp(label='number of moons', minValue=4, maxValue=20, value=12, field=True) 
    value2 = cmds.intSliderGrp(label='Distance from parent to child', minValue=5, maxValue=40, value=20, field=True) 

    DirectionControl = cmds.radioCollection() 
    Direction0 = cmds.radioButton(label='Front') 
    Direction1 = cmds.radioButton(label='Back') 
    Direction2 = cmds.radioButton(label='Random') 
    cmds.radioCollection(DirectionControl, edit=True, select=Direction0) 


    cmds.button(label = "OK", command = lambda *args: function1(cmds.intSliderGrp(value1, query=True, value=True), cmds.intSliderGrp(value2, query=True, value=True),cmds.radioButtonGrp(Direction1, query=True, value=True))) 
    cmds.showWindow() 


createUI() 

このライン:

cmds.button(label = "OK", command = lambda *args: function1(cmds.intSliderGrp(value1, query=True, value=True), cmds.intSliderGrp(value2, query=True, value=True),cmds.radioButtonGrp(Direction1, query=True, value=True))) 

作品我々はラムダ関数にとても多くのものを置く..

答えて

3

最初のものをラジオボタンに関連した文を削除した場合意味を成さない。より良い方法でコードを書くことを検討する必要がありますので、それを維持する人はあなたに怒らないでしょう:P。さらに重要なのは、次回にコードに戻ったときに、はるかに意味があることです。

2番目のことは、radionCollectionとradioGroupが同じでなく、radioCollectionが期待どおりに値を返さないため、mayaコマンドのドキュメントを読むことを検討する必要があります。

私はあなたのコードのビットクリーンアップバージョンを持っています。

import maya.cmds as cmds 
from functools import partial 
#def function1(value): 
def function1(value1,value2): 
    print(value1) 

def function2(value): 
    print(value) 


def createUI(): 
    myWindow = "SomeWindow" 
    if maya.cmds.window(myWindow,ex=True): 
     maya.cmds.deleteUI(myWindow) 
    cmds.window(myWindow) 
    cmds.columnLayout(adjustableColumn=True) 
    value1 = cmds.intSliderGrp(label='number of moons', minValue=4, maxValue=20, value=12, field=True) 
    value2 = cmds.intSliderGrp(label='Distance from parent to child', minValue=5, maxValue=40, value=20, field=True) 

    DirectionControl = cmds.radioCollection() 
    Direction0 = cmds.radioButton(label='Front') 
    Direction1 = cmds.radioButton(label='Back') 
    Direction2 = cmds.radioButton(label='Random') 
    DirectionControl = cmds.radioCollection(DirectionControl, edit=True, select=Direction0) 
    cmds.button(label = "OK", command = partial(passValue, value1, value2, DirectionControl)) 
    cmds.setParent("..") 
    cmds.showWindow() 

def passValue(value1, value2, DirectionControl, *args): 
    intValOne = cmds.intSliderGrp(value1, query=True, value=True) 
    intValTwo = cmds.intSliderGrp(value2, query=True, value=True) 
    radioCol = cmds.radioCollection(DirectionControl, query=True, sl=True) 
    getSelectRadioVal = cmds.radioButton(radioCol, query=True, label=True) 
    function1(intValOne, intValTwo) 
    function2(getSelectRadioVal) 

createUI() 

・ホープ、このヘルプ

+0

はありがとうございました。あなたは私の命を救いました! :) –

+0

うれしいことwork'd .. pleaseマークは受け入れられた回答とup vote :) – Achayan

関連する問題