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

how to load qt compiled c++ code in maya?

本文关键字:编译 c++ 代码 qt 加载 maya      更新时间:2023-10-16

有什么方法可以在maya中加载qt编译的c++代码吗

//示例代码

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

实际上,我创建了一个带有文本和按钮的基本ui,我想要的是,当我按下按钮时,文本应该变成hello,我做到了。所以这些连接是用上面的代码建立的,编译后一切都很好,但当我在maya中加载ui文件并按下按钮时,文本不会改变,因为实际上代码是用c++编写的。那么,有没有其他方法可以将代码与ui文件一起加载呢?

thank you,
Anvesh Chary

要在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文件放在script目录中,或者将uiFilePath更改为您的文件。

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

编辑

加载UI文件后,如果您知道窗口中的任何元素的名称,则可以对其进行编辑。

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

希望这能有所帮助。