【问题标题】:Simple custom UI in Maya using Python在 Maya 中使用 Python 的简单自定义 UI
【发布时间】:2014-01-20 06:38:04
【问题描述】:

您好,我正在学习如何使用 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

【问题讨论】:

  • 问题/问题是什么?
  • 发布后,您将永远无法更新文本,因为您没有在任何地方存储文本的名称。 'textFieldGroup -e obj1' 可能不起作用,因为你不能确定你在其他地方还没有'obj1'。将命令的结果捕获到变量中并使用它

标签: python maya


【解决方案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 函数,您应该查看文档以查看还有哪些其他命令。

【讨论】:

【解决方案2】:

在您体验了使用 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

玩得开心!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多