1

fileDialog2 の「optionsUICommit」フラグの使い方がわかりません。ユーザーがファイルダイアログボックスで「保存」を押したときに、コマンドを実行したいon_save_dialog_file. しかし、ヘルプ ファイルから、MEL コマンドを使用する必要があるようです。

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

メルのみ。文字列は MEL コールバックとして解釈され、ダイアログが正常に閉じられたときに呼び出されます。ユーザーがダイアログをキャンセルしたり、ウィンドウのタイトル バー コントロールやその他のウィンドウ システムの手段を使用してウィンドウを閉じたりすると、呼び出されません。コールバックの形式は次のとおりです。 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()\";"

ダイアログで保存ファイルを設定した後、コマンドを実行するためのより簡単で簡単な方法はありますか?

4

2 に答える 2

1

FileDialog2 を扱うときに思いついたのは、選択したファイル/ディレクトリのパスを配列で返すという事実でした。返された情報の文字列値を使用する場合は、最初に配列の一部を指定する必要があります。

c = mc.fileDialog2(fm=3, dialogStyle=2)
k = c[0]
print(str(k))
于 2016-08-24T13:16:34.737 に答える
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 に答える