Maya Python:从其他窗口中的文本字段调用名称?

2024-06-16 10:21:08 发布

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

好的,我有两个脚本,我想让它们做的很简单。在DS_TestShapeName中,我希望用户能够选择一个边并在文本字段中键入形状的名称:然后打开DS_testShapeBuilder,点击“构建演示形状”,并使用您输入的名称lf_TextFieldName创建一个形状

如果我想出了这个窍门,我就可以减少其他装配脚本中的大量脂肪,而不必向新脚本中添加匹配的gui元素,我可以从基本脚本中的一个gui调用它

运行脚本非常简单:

01.)在c:\Users\userName\Documents\maya\2020\scripts中创建2个python文件,分别命名为DS_testshapename.py和DS_testShapeBuilder.py

02.)将以下代码复制并粘贴到DS_TestShapeName.py中

'''
import DS_testWindowName
reload (DS_testWindowName)
DS_testWindowName.gui()
'''
import maya.cmds as cmds

if cmds.window("nameWin", exists =True):
    cmds.deleteUI("nameWin", window = True)

myWindow = cmds.window("nameWin",t='DS_testShapeNamer',rtf=1,w=100, h=100, toolbox=True)
column = cmds.columnLayout(adj=True)

def gui(*args):
    cmds.columnLayout(adjustableColumn=True)

    cmds.rowColumnLayout( numberOfRows=1 )

    cmds.rowLayout(numberOfColumns = 3,adjustableColumn=2)
    cmds.optionMenu('sidePref',label='Select Side       ',w=168)
    cmds.menuItem( label='lf' )
    cmds.menuItem( label='rt' )
    cmds.menuItem( label='ct' )
    cmds.text(l='IncPref')
    cmds.textField('incText',it = '_testShapeName',editable=True)
    cmds.setParent('..')
    
    cmds.showWindow(myWindow)

03.)将以下代码复制并粘贴到DS_testShapeBuilder.py中

'''
import DS_testWindowShape
reload (DS_testWindowShape)
DS_testWindowShape.gui()
'''
import maya.cmds as cmds

if cmds.window("buildWin", exists =True):
    cmds.deleteUI("buildWin", window = True)

myWindow = cmds.window("buildWin",t='DS_testShapeBuilder',rtf=1,w=100, h=100, toolbox=True)
column = cmds.columnLayout(adj=True)

def gui(*args):
    cmds.columnLayout(adjustableColumn=True)
    cmds.button(w=300,label='build demo shape',c=buildShapes)
    cmds.showWindow(myWindow)
    
def buildShapes(*args):
    sidePref = DS_testWindowName.gui() #I need to create a variable that calls the name from the other window
    namePref = 'bob'
    cmds.sphere(n= sidePref + namePref)

04.)在maya脚本编辑器中创建新的python选项卡,并粘贴以下内容:

import DS_testWindowName
reload (DS_testWindowName)
DS_testWindowName.gui()

import DS_testWindowShape
reload (DS_testWindowShape)
DS_testWindowShape.gui()
    

05.)突出显示粘贴的脚本,并在numpad上单击enter键以运行脚本

06.)在DS_TestShapeName中,选择一个面并在文本字段中键入任何名称

07.)DS_testShapeBuilder,点击“构建演示形状”

我的目标是找出如何将DS_TestShapeName中的选项菜单和文本字段链接到DS_testShapeBuilder的“构建演示形状”

如果这是一个相对简单的问题,我深表歉意:但我的python能力大多是自学的,任何帮助都会得到感谢。谢谢你抽出时间


Tags: pyimport脚本truedsguiwindowlabel