嘿,伙计们,我在试着做一个文件管理器,但是我真的卡住了。我的第一个问题是,当我的窗口打开时,我在文本字段中写入路径,然后应用ok,它就不起作用了。然后玛雅开始抛给我这个“名字'MNGR_Window‘没有定义#”,但它以前工作得很好。该项目是创建一个文件管理器,您可以在其中写入对象的名称,然后选择路径(project1等)。并指定它是道具角色还是场景。他们每个必须有3个文件夹(如果用户选择chara,我需要创建3个文件夹,如模型,纹理,着色),然后按创建按钮,它应该创建一个路径,如B\project1\props\table在表中,我必须有3个文件夹纹理,模型,着色。我真的卡住了,已经谢谢你们了。
class MNGR_Window(object):
def make_dir(path):
if not os.path.exists(path):
os.makedirs(path)
return path
def MakeFolders(*args):
userInput = cmds.textField('textBox', q=1, tx=1)
path = make_dir(userInput)
print('{0} has been created'.format(path))
#Constructor
def __init__(self):
self.window = "MNGR_window"
self.title = "File Manager"
self.size = (400,400)
#close old window
if cmds.window(self.window, exists = True):
cmds.deleteUI(self.window, window = True)
#create new window
self.window = cmds.window(self.window, title=self.title, widthHeight=self.size)
cmds.columnLayout(adjustableColumn = True)
selected = cmds.ls(sl=True,long=True)
cmds.text(self.title)
cmds.separator(height=20)
cmds.text(label="Name")
tb=cmds.textField("textBox", tx ="")
cmds.optionMenu(label= "Projet")
prod1=cmds.menuItem(label = "Projet1")
prod2=cmds.menuItem(label = "Projet2")
prod3=cmds.menuItem(label = "Projet3")
prod4=cmds.menuItem(label = "Projet4")
cmds.optionMenu(label= "Type")
Props=cmds.menuItem(label = "Props")
Chara=cmds.menuItem(label = "Chara")
Scene=cmds.menuItem(label = "Scene")
cmds.button(label="Create", command=MakeFolders)
cmds.showWindow()myWindow = MNGR_Window()
发布于 2021-11-30 16:19:07
你遗漏了一些面向对象的基础知识。除非您想创建类方法,否则类的方法应该定义为:
def someMethod(self, ....):
doSomething因此您应该更改您的make_dir和MakeFolders方法。则您对方法的调用不正确,方法是通过
self.someMethod(...)因此,在您的情况下,可以通过
cmds.button(label="Create", command=self.MakeFolders)如果你解决了这些问题,代码就可以工作了。
https://stackoverflow.com/questions/70130988
复制相似问题