1

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

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

仅限 MEL。该字符串被解释为 MEL 回调,在成功关闭对话框时调用。如果用户取消对话框,或者使用窗口标题栏控件或其他窗口系统方式关闭窗口,则不会调用它。回调的形式为: global 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()\";"

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

4

2 回答 2

1

您可以这样做,无需回调。用户选择以外的任何内容都将返回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"
于 2016-01-06T06:35:08.560 回答
1

我在处理 FileDialog2 时遇到的问题是它返回数组中所选文件/目录的路径。如果要使用返回信息的字符串值,则必须先指定数组的一部分。

c = mc.fileDialog2(fm=3, dialogStyle=2)
k = c[0]
print(str(k))
于 2016-08-24T13:16:34.737 回答