我无法理解如何使用fileDialog2的“optionsUICommit”标志。当用户在文件对话框中点击“保存”时,我想运行命令on_save_dialog_file
。但是从帮助文件中,似乎要我使用MEL命令。
http://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/CommandsPython/index.html
仅限MEL。该字符串被解释为要调用的MEL回调 对话框成功解除时。如果是,它将不会被调用 用户取消对话框,或使用窗口标题关闭窗口 条形控件或其他窗口系统的意思。回调是 form:global proc MyCustomOptionsUICommit(string $ 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()\";"
在对话框中设置保存文件后,是否有更简单/更直接的方式来运行命令?
答案 0 :(得分: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"
答案 1 :(得分:1)
在处理FileDialog2时,为我提供的东西是它返回数组中所选文件/目录的路径。如果要使用返回信息的字符串值,则必须首先指定数组的一部分。
c = mc.fileDialog2(fm=3, dialogStyle=2)
k = c[0]
print(str(k))