有什么方法可以在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()")
希望这能有所帮助。