有没有办法在maya中加载qt编译的c ++代码?
//示例代码
void MainWindow::on_pushButton_clicked()
{
ui->labell->setText("Hello");
}
实际上我用文本和按钮创建了基本的ui,我想要的是当我按下按钮时文本应该变为hello
并且我实现了这一点。所以这个连接是用上面的代码完成的,在编译之后一切正常但是当我在maya
中加载ui文件并且我按下按钮时文本没有改变,因为实际代码是用c ++编写的。那么,有没有替代加载该代码以及ui文件?
thank you,
Anvesh Chary
答案 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()")
希望这有帮助。