玛雅Python读取并通过变量设置optionMenu值
问题描述:
我有一个模块,在用户使用我的工具后创建savedSettings.py文件,该文件充满变量以在下次使用该工具时加载到gui中。玛雅Python读取并通过变量设置optionMenu值
我有一些复选框和选项菜单。读取和设置变量的复选框是非常简单:
# loadsettings into gui
if os.path.exists(userSettings):
sys.path.append(toolFolder)
import savedSettings
viewCBvalue = savedSettings.viewCheck
ornamentCBvalue = savedSettings.ornamentCheck
renderCBvalue = savedSettings.renderCheck
我以为optionMenu将是相同的,并写道:
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"
将是巨大的,如果有人解释说我什么,我做错了,如何设置变量的optionMenu。
感谢您提前抽出时间,祝您有美好的一天!
答
不要这样做。相反,使用mayas内部机制,optionVar,为此。
但是如果你必须这样做,后来才知道,当你做:
import savedSettings
无论是在savedSettings定义存储里面
savedSettings
,所以如果你有VARviewCBvalue
然后你把它savedSettings.viewCBvalue
。您可以通过调用import savedSettings as *
将其加载到主文件夹中,但您确实不想这么做!Python导入不是一个正常的函数,结果得到缓存。
其他各种问题。不使用进口用于此目的
如果你不想使用optionVar
,可以考虑使用pickle