Hier ist etwas, das für Sie arbeiten soll:
from maya import cmds
from functools import partial
def export(txtField, *args):
print txtField, ':', args
print cmds.textField(txtField, q=1, text=1)
if cmds.window('exporter', q=1, ex=1):
cmds.deleteUI('exporter')
window = cmds.window('exporter')
cmds.columnLayout(adjustableColumn=True)
name = cmds.textField(text='testing...')
press = cmds.button('Export...', c=partial(export, name))
cmds.showWindow('exporter')
Was (und vielleicht verwirrend sein) geschieht, ist, dass der Befehl von Maya-Taste aufgerufen bereits übergibt ein Argument Standard, in diesem Fall False
. Als Konsequenz fügt partial
das zusätzliche Argument an das von Ihnen angegebene Argument an, und daher wird erwartet, dass export
zwei Argumente erhält, nicht nur eins.
Es ist einige Zeit, die ich nicht native Maya UI-Befehle verwenden, so dass ich nicht sicher bin, was False
steht und wenn Sie erwarten können, dass ein sinnvolles Argument übergeben wird, unter verschiedenen Bedingungen. Wie auch immer, Sie können dies umgehen, indem Sie Ihrer Funktionsdefinition ein zusätzliches Argument hinzufügen.
Sie könnten etwas wie def export(txtField, _):
schreiben, aber das würde nur funktionieren, wenn Sie sicher sind, dass der übergebene Parameter einer ist. Aus diesem Grund habe ich stattdessen def export(txtField, *args):
verwendet. Auf diese Weise können Sie args
drucken und Fehler beheben (unabhängig von der Anzahl der Argumente), während der Rest des Codes funktioniert.
Als Randbemerkung, für andere Verwendungen von partial
mit Maya Sie dies lesen möchten: https://theodox.github.io/2014/maya_callbacks_cheat_sheet
die Antwort ist unten; nur aus Neugier (ich hoffe, es ist in Ordnung, in einem Kommentar zu fragen, da es nicht verwandt ist) hast du es geschafft, dass das funktioniert? https://stackoverflow.com/questions/44703839/changereplace-file-within-reference Ich bin noch SO als ein aktiver Benutzer ziemlich neu und ich bin nicht sicher, ob ich verfolgen sollte, welche Antworten waren nicht explizit akzeptiert ... – mapofemergence