如何在Maya中使用Python使select命令在按钮上起作用?

时间:2019-03-22 13:04:47

标签: python select command maya

我是Python编程的新手,在Maya中需要帮助。

因此,我试图用一个按钮创建一个UI,该按钮在我的Maya场景中选择一个名为"big"的对象,但是我无法使其正常工作。如何在按钮ball_btn上添加选择命令?

我尝试将cmds.select("ball")插入按钮,但是没有运气。

谢谢!

ball_btn = mc.button(label = “”, w = 50, h = 30, bgc = [1.000,0.594,0.064])

1 个答案:

答案 0 :(得分:1)

Maya文档已经为您提供了有关如何连接button to a function的好例子。

单击按钮后触发按钮的功能,您可以简单地检查场景中是否存在对象,然后选择它:

import maya.cmds as cmds


# Define a function that the button will call when clicked.
def select_obj(*args):
  if cmds.objExists("ball"):  # Check if there's an object in the scene called ball.
      cmds.select("ball")  # If it does exist, then select it.
  else:
      cmds.error("Unable to find ball in the scene!")  # Otherwise display an error that it's missing.


# Create simple interface.
win = cmds.window(width=150)
cmds.columnLayout(adjustableColumn=True)
cmds.button(label="Select", command=select_obj)  # Use command parameter to connect it to the earlier function.
cmds.showWindow(win)

您还可以使用cmds.select将按钮的命令直接连接到lambda

import maya.cmds as cmds


# Create simple interface.
win = cmds.window(width=150)
cmds.columnLayout(adjustableColumn=True)
cmds.button(label="Select", command=lambda x: cmds.select("ball"))  # Use lambda to connect directly to the select method.
cmds.showWindow(win)

但是,对于错误处理方式或是否要执行其他操作,您将得到零自定义。通常,除非有充分的理由,否则请坚持使用按钮触发功能。请记住,您也可以将lambda用于自己的自定义函数。