我正在用python为maya开发一个UI,我尝试在frameLayout展开时执行一个操作,在本例中,我有几个“frameLayout”对象,我想使用单个函数“fl\u expand”,而不是每个对象一个
def fl_expand(*args):
print args
with frameLayout("layout1", collapsable=True, expandCommand=fl_expand):
...
with frameLayout("layout2", collapsable=True, expandCommand=fl_expand):
...
但我不知道如何将实例名作为参数传递给函数,我尝试了:
with frameLayout("layout1", collapsable=True, expandCommand=fl_expand("layout1")):
...
但我当然有个错误:
# Error: TypeError: file /usr/autodesk/maya2018/lib/python2.7/site-packages/pymel/internal/pmcmds.py line 134: Invalid arguments for flag 'ec'. Expected string or function, got NoneType #
目前,你有这样的情况:
您需要调用fl\u expand函数,第一个参数已经填充了布局的名称。为此,可以使用partiel函数。请参阅functools.partial的文档。你知道吗
您可以尝试:
当然,如果你有很多这样的电话,那可能会很费劲。您还可以定义自己的frameLayout函数:
相关问题 更多 >
编程相关推荐