-1

有没有办法在maya中加载qt编译的c++代码?

//示例代码

void MainWindow::on_pushButton_clicked()
{
    ui->labell->setText("Hello");

}

实际上我是用文本和按钮创建的基本用户界面,我想要的是hello当我按下按钮时文本应该改变,我实现了。所以这个连接是用上面的代码建立的,编译后一切正常,但是当我加载 ui 文件maya并按下按钮时,文本不会改变,因为实际上代码是用 c++ 编写的。那么,是否有任何替代方法可以将该代码与 ui 文件一起加载?

thank you,
Anvesh Chary
4

1 回答 1

0

要在 Maya 中加载.ui文件,我以前在 python 中做过,我不确定 C++,但我不相信 Maya 直接解释 C++(我可能错了)。

import maya.cmds as cmds

ve = cmds.about(version=True) 
conv = "%s"%ve 
versionOutput = float(conv[0:4])
def mayaVers():
    cmds.warning("You're using Maya %s! You need to be using Maya 2011 or greater to be compatible with this script.\n" % conv);
def loadUIWindow():
    if versionOutput >= 2011:
        if (cmds.dockControl('dockUIWindow', exists=True)):
            cmds.deleteUI('dockUIWindow')
        scriptsDirectory = cmds.internalVar(usd=True)        
        UIWindow = cmds.loadUI(uiFile=scriptsDirectory + "/uifilename.ui")
        dockSoftMod = cmds.dockControl('dockUIWindow',area="left", content='uiwindowname', label="")
    else:
        mayaVers()
loadUIWindow()

这就是我过去的做法,如果您只是想将 UI 文件导入 Maya 会话,可以这样做。

显然,您需要将 ui 文件放在脚本目录中,或者将 uiFilePath 更改为您的文件。

此外, 中的内容标志dockControl很重要,这需要是您尝试停靠的窗口或控件的名称。假设您已将 UI 文件包装器称为“win”,内容标志需要相同。

编辑

加载 UI 文件后,您可以编辑窗口中的任何元素(如果您知道它的名称)。

cmds.button('ParentBtn', edit=1, command="parentObject()")

希望这可以帮助。

于 2014-05-05T23:46:19.283 回答