【问题标题】:how to load qt compiled c++ code in maya?如何在maya中加载qt编译的c++代码?
【发布时间】:2014-06-18 08:05:00
【问题描述】:

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

//示例代码

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

}

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

thank you,
Anvesh Chary

【问题讨论】:

  • 你的帖子不适合你的标题。
  • 如果你熟悉maya 3d软件你就会明白我在说什么!!!!
  • 我对maya很熟悉,你的问题和你的帖子完全不同。
  • 您在询问如何在 Maya 中加载 UI 文件,是的,您的帖子正在设置标签的文本...
  • 抱歉,实际上我的问题是“有没有办法在 Maya 中加载 qt 编译的 UI 文件?”但我不能用这个发布我的问题,所以我在标题主题中添加了这一行....此代码仅在 qt 中有效,但在 Maya 中无效,窗口启动成功,但文本不会更改为“hello”,因为已创建此连接通过代码。所以我问有没有办法用这个连接加载ui....希望我理解....

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


【解决方案1】:

要在 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()")

希望这会有所帮助。

【讨论】:

  • 你没有得到我......尝试了您的 python 代码,它正在加载窗口并停靠在左侧,但是按下按钮时文本不会改变....我明白了吗?
  • 你已经说过两次了,你的问题是Is there any way to load qt compiled UI file in maya?。对我来说,这听起来像是你在关注如何加载 UI 文件。如果您只是想编辑标签或按钮等,请查看我修改后的答案。
  • 我的程序是在 c++ 中而不是在 python 中......有没有其他方法可以加载我的 c++ 程序?
  • Pymel、Python 等,利用 api 通过 python 解释 C++ 命令,Maya 不允许你直接在 C++ 中读/写,你必须将它编译成插件,比如说.mll
猜你喜欢
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多