2017-10-20 14 views
0

私がツールを使用した後にsavedSettings.pyファイルを作成するモジュールがあります。このファイルは、次回ツールを使用するときにguiにロードする変数で埋められています。Maya Pythonが変数を介してoptionMenu値を読み込んで設定します

私はいくつかのチェックボックスとoptionMenuを持っています。読むとチェックボックスの変数を設定するのと同じくらい簡単です:

# loadsettings into gui 
if os.path.exists(userSettings): 
    sys.path.append(toolFolder) 
    import savedSettings 

    viewCBvalue = savedSettings.viewCheck 
    ornamentCBvalue = savedSettings.ornamentCheck 
    renderCBvalue = savedSettings.renderCheck 

私はオプションメニューは同じだろうと思ったと書きました:

encodingOMvalue = savedSettings.encodingCheck 

私は今変数を使用するGUIを伝える時:

cmds.checkBoxGrp('viewCB', label = 'View: ', value1 = viewCBvalue) 
cmds.checkBoxGrp('ornamentCB', label = 'Show Ornaments: ', value1 = ornamentCBvalue) 
cmds.checkBoxGrp('renderCB', label = 'Render offscreen: ', value1 = renderCBvalue) 

cmds.optionMenuGrp('encodingOM', label = 'Encoding ', value = encodingOMvalue) 
cmds.menuItem('tif', label = 'tif') 
cmds.menuItem('jpg', label = 'jpg') 
cmds.menuItem('png', label = 'png') 

私はfollwingエラーを取得する:

RuntimeError: Item not found: tif # 

私savedSettings.pyは、次のようになります。誰かが私が間違っているとどのようにオプションメニューの変数を設定することになっているものを私に説明している場合

# User Settings Savefile: 
viewCheck = False 
ornamentCheck = False 
renderCheck = False 
encodingCheck = "tif" 

は素晴らしいことです。

事前に時間をとってありがとう、ありがとうございました!

答えて

1

これを行わないでください。代わりに、マヤの内部メカニズムoptionVarを使用してください。

しかし、あなたがこれを行う必要がある場合、あなたがないときことを知っている:あなたはVAR viewCBvalueを持っている場合savedSettingsで定義されているものは何でも

import savedSettings 
  • がそうsavedSettings内部に格納された後、あなたがそれを呼び出しますsavedSettings.viewCBvalue。あなたはimport savedSettings as *と呼んでこれをメインにロードすることができますが、実際にはこれをやりたくはありません!

  • Pythonのインポートは通常の関数ではなく、結果はキャッシュに入れられます。

  • その他のさまざまな問題。あなたがoptionVarを使用しない場合は、この目的の

のインポートを使用してはいけない、使用することを検討してpickle

関連する問題