如何在maya中加载qt编译的c ++代码?

时间:2014-05-01 18:57:12

标签: c++ qt user-interface maya autodesk

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

//示例代码

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

}

实际上我用文本和按钮创建了基本的ui,我想要的是当我按下按钮时文本应该变为hello并且我实现了这一点。所以这个连接是用上面的代码完成的,在编译之后一切正常但是当我在maya中加载ui文件并且我按下按钮时文本没有改变,因为实际代码是用c ++编写的。那么,有没有替代加载该代码以及ui文件?

thank you,
Anvesh Chary

1 个答案:

答案 0 :(得分: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()")

希望这有帮助。