我在理解如何使用fileDialog2的“ optionsUICommit”标志时遇到了麻烦。当用户在文件对话框中单击“保存”时,我要运行命令on_save_dialog_file。但是从帮助文件来看,似乎要我使用MEL命令。

http://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/CommandsPython/index.html


  仅MEL。该字符串被解释为MEL回调,称为
  对话框成功关闭时。如果它不会被调用
  用户取消对话框或使用窗口标题关闭窗口
  条控件或其他窗口系统工具。回调是
  形式:全局proc MyCustomOptionsUICommit(string $ parent)
  
  parent参数是控件已放入其中的父布局。
  使用optionsUICreate标志添加


这似乎...很复杂。

这是我的代码。

import pymel.core as pm


def on_save_dialog_file(myDialog):
    print "Hello from file_dialog_save_file()!"


def file_dialog_save_file():
    myDialog = pm.fileDialog2(ocm="on_save_dialog_file", fm=0, ff="Maya Files (*.ma *.mb);;Maya ASCII (*.ma);;Maya Binary (*.mb);;All Files (*.*)", dialogStyle=2)
    print myDialog


file_dialog_save_file()


甚至尝试作为一个奇怪的Mel-> Python命令也没有用。 ocm="python \"on_save_dialog_file()\";"

在对话框中设置保存文件后,是否有更简单/更直接的方式来运行命令?

最佳答案

您可以像这样,无需回调。用户选择以外的任何内容都将返回None

c = cmds.fileDialog2(fm=0, ff="Maya Files (*.ma *.mb);;Maya ASCII (*.ma);;Maya Binary (*.mb);;All Files (*.*)", dialogStyle=2)
if c:
    print c
else:
    print "user cancelled"

关于python - Maya Pymel:将fileDialog2的返回值传递到UI文本字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34625788/

10-12 16:54