python-2.7 - 如何在 MAYA 中的 python 脚本之间传递参数?
问题描述
我是 python 的新手,我试图在不同的脚本之间传递参数,但它们只更新一种方式:我用这样的架子调用 Maya 中的第一个脚本:
try:
myPM.close()
except:pass
import sys
sys.path.append("C:/Users/manue/Desktop/test")
import UiMayaTest as SBIRP
reload(SBIRP)
myPM = SBIRP.createUI()
这称为脚本“UiMayaTest.py”是一个简单的窗口,带有一个 intField 条目和一个按钮:
import sys
import maya.cmds as cmds
from functools import partial
def buttonPressed(episode, *args):
passValue(episode, *args)
print '============== buttonPressed ================'
print 'EpisodeName ', EpisodeName
Var = ''
import UiMayaTestFunction
Var = UiMayaTestFunction.FindVarFunc(EpisodeName,Var)
print 'Var : ',Var
def createUI():
myWindow = "SomeWindow"
if cmds.window(myWindow,ex=True):
cmds.deleteUI(myWindow)
cmds.window(myWindow)
cmds.columnLayout( adjustableColumn=True )
cmds.text( label='Episode: ', align='left' )
episode = cmds.intField( "Episode", minValue = 100, maxValue = 1000, value =100)
cmds.button(l="Open Last LIT scene", w=150, h=30, command=partial(buttonPressed,episode))
cmds.setParent("..")
cmds.showWindow()
def passValue(episode, *args):
global EpisodeName
EpisodeName = `cmds.intField( episode, query = True, value = True)`
它调用的脚本称为“UiMayaTestFunction.py”,只返回一个名为 Var 的变量:
def FindVarFunc(EpisodeName, Var):
print '============== FindVarFunc ================'
print 'EpisodeName:' , EpisodeName
Var = 'Hello world'
print 'Var: ',Var
return Var
每次按下按钮时,从 UiMayaTest 到 UiMayaTestFunction 的变量“EpisodeName”都会得到很好的更新,但是如果我在 UiMayaTestFunction 中更改变量“Var”,它不会更新它,我总是得到相同的打印或“Var” ...提前感谢您的帮助...
解决方案
嗯....看来脚本确实做了它应该做的事情。您期望 Var 变量的结果是什么?让我们看看.. 如果按下按钮,则调用 buttonPressed() 函数。在那里,变量“Var”被初始化为一个空字符串“”。然后使用参数 Var 调用 FindVarFunc(),它仍然是一个空字符串。在 FindVarFunc() 中,变量 'Var' 被打印并返回,仍然是什么......你猜对了:一个空字符串。最后将函数的结果分配给变量'Var',结果是......打印的空字符串。它可以帮助分配 'Var' 其他东西,但一个空字符串,看看它是否工作得更好。
推荐阅读
- jquery - 2分钟后清除本地存储
- native - 如何使 ExceptionMapper 在本机模式下工作
- java - 在 addOnItemTouchListener 中禁用 recyclerView 原生广告的 onItemClick
- angular - 如何在 html 中的表单组上关闭 angular 8 Forms 中的自动完成功能?
- python - AttributeError:“NoneType”对象没有属性“drop”
- hyperlink - 如何在 Alchemy CMS 的内部页面链接上使用 relative_url_root
- python - python3中的Pickle vs cPickle(?)
- c++ - 想从我的字符串 c++ 中删除 \n\t 空格
- javascript - React Native,创建多个复选框
- python - django中reverse和reverse_lazy的区别