Maya Python 通过变量读取和设置 optionMenu 值
Maya Python read and set optionMenu value via variable
我有一个模块,在用户使用我的工具后创建一个 savedSettings.py 文件,这个文件充满了变量,以便在下次使用该工具时加载到 gui 中。
我有一些复选框和一个选项菜单。读取和设置复选框的变量非常简单:
# 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')
我收到以下错误:
RuntimeError: Item not found: tif #
我的 savedSettings.py 看起来像这样:
# User Settings Savefile:
viewCheck = False
ornamentCheck = False
renderCheck = False
encodingCheck = "tif"
如果有人能解释我做错了什么以及如何为 optionMenu 设置变量,那就太好了。
感谢您提前抽出时间,祝您编码愉快!
不要这样做。为此使用 Maya 内部机制 optionVar。
但是如果你必须这样做,那么当你这样做时要知道:
import savedSettings
在 savedSettings 中定义的任何内容都存储在 savedSettings
中,所以如果你有 var viewCBvalue
那么你可以用 savedSettings.viewCBvalue
。您可以通过调用 import savedSettings as *
将其加载到 main 中,但您真的、真的不想这样做!
Python 导入不是正常函数,结果被缓存。
其他各种问题。不要为此目的使用导入
如果不想使用optionVar
,可以考虑使用pickle
我有一个模块,在用户使用我的工具后创建一个 savedSettings.py 文件,这个文件充满了变量,以便在下次使用该工具时加载到 gui 中。
我有一些复选框和一个选项菜单。读取和设置复选框的变量非常简单:
# 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')
我收到以下错误:
RuntimeError: Item not found: tif #
我的 savedSettings.py 看起来像这样:
# User Settings Savefile:
viewCheck = False
ornamentCheck = False
renderCheck = False
encodingCheck = "tif"
如果有人能解释我做错了什么以及如何为 optionMenu 设置变量,那就太好了。
感谢您提前抽出时间,祝您编码愉快!
不要这样做。为此使用 Maya 内部机制 optionVar。
但是如果你必须这样做,那么当你这样做时要知道:
import savedSettings
在 savedSettings 中定义的任何内容都存储在
savedSettings
中,所以如果你有 varviewCBvalue
那么你可以用savedSettings.viewCBvalue
。您可以通过调用import savedSettings as *
将其加载到 main 中,但您真的、真的不想这样做!Python 导入不是正常函数,结果被缓存。
其他各种问题。不要为此目的使用导入
如果不想使用optionVar
,可以考虑使用pickle