Maya Python通过变量读取和设置选项菜单值

2024-06-01 01:15:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模块可以创建一个保存设置.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

我想选项菜单应该是一样的,然后写道:

^{pr2}$

当我现在告诉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 # 

我的保存设置.py看起来像这样:

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

如果有人告诉我我做错了什么,以及如何为optionMenu设置变量,那就太好了。在

感谢您提前抽出时间,祝您今天编码愉快!在


Tags: 文件工具pyfalse选项菜单guilabel
1条回答
网友
1楼 · 发布于 2024-06-01 01:15:32

别这样。为此,请使用mayas内部机制optionVar。在

但如果你必须这样做,那么你要知道当你这样做的时候:

import savedSettings
  • savedSettings中定义的任何内容都存储在savedSettings中,因此如果您有一个viewCBvalue,那么就用savedSettings.viewCBvalue来调用它。您可以通过调用import savedSettings as *将其加载到main中,但您确实不想这样做!

  • Python导入不是一个普通函数,结果会被缓存。

  • 其他各种问题。不要为此目的使用import

如果不想使用optionVar,请考虑使用pickle

相关问题 更多 >