人们,感谢您抽出宝贵的时间阅读本文!太...我正在尝试使用文本曲线在Maya中创建文本生成工具,但似乎无法正常工作。这个想法是我在工具中输入文本,然后按“创建文本”按钮,该文本将变成一个文本曲线的几何图形,但是无论我做什么,我似乎都会出错。
有人有可能知道我可以采取什么措施来纠正这种情况吗?
感谢您抽出宝贵的时间阅读本文!干杯!
import sys
import os
import maya.cmds as mc
outputText = 'Hello World'
def UI ():
if mc.window('textGenerator', exists = True):
mc.deleteUI('textGenerator')
mc.window('textGenerator')
mc.columnLayout()
mc.text('Enter text here: ')
mc.textFieldGrp()
mc.button(label = 'Create Text', command = 'buttonPress()')
mc.showWindow('textGenerator')
def buttonPress():
finalName = mc.textFieldGrp()
mc.textCurves(finalName)
sys.stdout.write (outputText)
mc.textCurves(t=outputText)
UI()
答案 0 :(得分:0)
您的代码中有几个问题,您必须将ui元素封装到一个变量中(或至少正确命名它们):
textInput = mc.textFieldGrp()
第二,永远不要使用逗号来输入命令,而使用局部或lambda来传递变量以起作用(请阅读我在该主题上发表的其他文章或从theodox中找到文章)
from functools import partial
mc.button(label = 'Create Text', command = partial(buttonPress, textInput))
代码的最后一部分:
def buttonPress(textFieldGrpName, *args):
# *args is just here to skip a default argument pass as last by maya
# query the input text in the text field grp
finalName = mc.textFieldGrp(textFieldGrpName, q=1, text=1)
mc.textCurves(t=finalName)
sys.stdout.write (outputText)
mc.textCurves(t=outputText)