Hey je veux comprendre le processus d'importation et de rechargement de scripts avec Python dans Maya.Maya Python appeler les fonctions de classe modul
J'ai le code suivant qui jette l'erreur suivante:
# NameError: name 'MyClass' is not defined #
Il crée la fenêtre, mais quand j'appuie sur le bouton, il me donne l'erreur ci-dessus. Ce serait génial si quelqu'un pouvait m'aider ce qui me manque ici.
import maya.cmds as cmds
from functools import partial
class MyClass():
@classmethod
def createWindow(cls):
windowID = 'window'
if cmds.window(windowID, exists = True):
cmds.deleteUI('window')
window = cmds.window(windowID, title="Blast", iconName='Blast', widthHeight=(400, 200))
cmds.frameLayout(label='')
cmds.button(label='Playblast' ,command= 'MyClass.createPlayblast()')
cmds.showWindow(window)
@classmethod
def createPlayblast(cls):
cmds.playblast(f= "playblast", fmt= "image")
print "hallo"
MyClass.createWindow()
J'appelle mon Modul comme ceci:
# call loadTest
import sys
Dir = 'S:/people/Jan-Philipp/python_scripts'
if Dir not in sys.path:
sys.path.append(Dir)
try: reload(loadTest)
except: from loadTest import MyClass
loadTest.MyClass()
Cheers, espérons que vous avez tous une belle journée!
Isent cette ligne dans votre message faux dans ce cas? cmds.button (label = 'Playblast', commande = 'MyClass.createPlayblast()') serait quelque chose comme: ou? cmds.button (label = 'Playblast', commande = 'createPlayblast()') –
Oui, c'est correct. – theodox
En outre, n'utilisez pas la version de référence de chaîne des callbacks - passez directement les fonctions python. Les versions de chaîne fonctionnent différemment dans l'écouteur et dans le code de production, ce qui produit beaucoup de bogues. Voir https://theodox.github.io/2014/maya_callbacks_cheat_sheet – theodox