您好我正在学习使用Python为Maya创建自定义UI。我正在努力实现一些我无法做到的事情。我四处搜寻但找不到答案。
import maya.cmds as cmds
def main():
cmds.window(title='Test Window')
cmds.columnLayout()
cmds.textFieldGrp('obj1', label='Name', text ="Please enter your name")
cmds.textFieldGrp('obj2', label='Address', text = "Please enter your address")
cmds.rowLayout(nc=3)
cmds.button(label="Lock", width=100, c='disable_texts()')
cmds.button(label="Edit", width=100, c='change_texts()')
cmds.button(label="Reset", width=100, c='default()')
cmds.showWindow()
def disable_texts():
# disable the text fields
def change_texts():
# enable the text fields
def default():
# change the text fields back to default ie like above
答案 0 :(得分:1)
如果我理解,这可能会回答你的问题..
cmds.window(title='Test Window')
cmds.columnLayout()
cmds.textFieldGrp('obj1', label='Name', text ="Please enter your name")
cmds.textFieldGrp('obj2', label='Address', text = "Please enter your address")
cmds.rowLayout(nc=3)
cmds.button(label="Lock", width=100, c=disable_texts)
cmds.button(label="Edit", width=100)
cmds.button(label="Reset", width=100)
cmds.showWindow()
def disable_texts(*args):
#The e=True is for edit, so I'm 'editing' 'obj1' which is the name of the textFieldGrp
cmds.textFieldGrp('obj1', e=True, enable=False)
作为旁注,最好将函数对象传递给command
标志。如果您不确定原因,请检查this。对于cmds
函数,您应该检查文档以查看其他命令。
答案 1 :(得分:1)
在您使用Maya内置功能布局UI之后,我建议您为Maya设置PyQT。
如果您使用的是2014年以下的Maya版本,则需要从此处安装已编译的PyQt:http://nathanhorne.com/?s=pyqt
由于Maya将PyQT与2014年相结合(因此2015年也是如此),因此您无需为此版本安装任何内容。
这里有一些入门教程: http://zurbrigg.com/maya-python/category/pyqt-projects-for-maya
玩得开心!!!