从另一个脚本调用Maya UI

时间:2017-07-08 04:44:49

标签: python user-interface maya

在开始之前,我只想澄清一下,对于python和编程来说,这是一个新手。我仍然无法编写课程,也无法理解面向对象的编程。

我目前正在使用python为maya编写工具。

问题是我为我的脚本编写了一个主UI,一切运行正常。但是,每次我更新我的UI时,我都不想复制/粘贴我的脚本,所以我写了另一个脚本来调用我的主UI。

import maya.cmds as mc ;
import sys ;

mp = "C:/Users/Administrator/Desktop/script/birdScript20170707" ;
if not mp in sys.path :
    sys.path.append ( mp ) ;

import library.mainUI as mui ;

mui.birdMainUI () ;

这是我的主要用户界面:

import sys ;
import os ;
import maya.cmds as mc ;

mp = "C:/Users/Administrator/Desktop/script/testPackage" ;
if not mp in sys.path :
    sys.path.append ( mp ) ;

import library.mayaLibrary as mlb ;

def printSelfPath( ) :
    import general.printSelfPath as psp ;
    reload ( psp ) ;
    psp.printPath ( ) ;

###############
''' MAIN UI '''
###############

def birdMainUI ( ) :

    # check if window exists

    if mc.window ( 'birdMainUI' , exists = True ) :
        mc.deleteUI ( 'birdMainUI' ) ;

    # create window 

    window = mc.window ( 'birdMainUI', title = "birdMainUI v0.0", width = 200,
        mnb = False , mxb = False , sizeable = True , rtf = True ) ;


    general = mc.rowColumnLayout ( nc = 1 , cw = ( 1 , 200 ) ) ;

    mc.button ( 'print self path' , c = 'printSelfPath( )' ) ;

    mc.setParent( '..' ) ;

    mc.showWindow ( window ) ;

#birdMainUI () ;

这是主UI使用的功能:

import os ;
import sys ;

import maya.cmds as mc ;
import maya.mel as ml ;

def printPath ( *args ) :

    path =  ml.eval ( "file -q -sn" ) ;

    print ( path ) ;

用户界面出现了但是当我点击我的用户界面按钮时出现了这个错误:

# Error: name 'printSelfPath' is not defined
# Traceback (most recent call last):
#   File "<maya console>", line 1, in <module>
# NameError: name 'printSelfPath' is not defined # 

我不知道发生了什么事。这是我的文件结构:

file structure

如果有人有兴趣,这是包裹: https://drive.google.com/file/d/0B9acOuH0SmXsSk9aX0x6Nl9KbTQ/view?usp=sharing

谢谢。

0 个答案:

没有答案