[Qt]QT嵌入Matlab Engine实现Matlab Cmd窗口(1)
原创文章,欢迎转载。转载请注明:转载自 祥的博客原文链接:文章目录@[toc]环境1.问题来源2.最终实现的测试效果3.解决思路QT嵌入Matlab Engine实现Matlab Cmd窗口(1)环境Window7 x64VS2015Qt5.11.3 x64Matlab R2013 x64如果不知道如何配置Matlab和C++的混合编程可以先看一下这两篇文章:VS和...
·
原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.csdn.net/humanking7/article/details/86040954
文章目录
文章目录
QT嵌入Matlab Engine实现Matlab Cmd窗口(1)
环境
Window7 x64VS2015Qt5.11.3 x64Matlab R2013 x64
如果不知道如何配置Matlab和C++的混合编程可以先看一下这两篇文章:
1.问题来源
因为要开发一款软件,里面需要调用Matlab Engine,接触过Matlab和C++的混合编程尤其是调用Matlab Engine的筒子们应该知道,只要调用Matlab Engine都会出现MATLAB Command Window这个进程,就是下图所示。当然我们也可以用engSetVisible( ep, false)这句代码使得这个窗口不显示。但是这有两个问题:
Matlab Engine打开太慢,如果放在UI的主线程中,很容易造成软件卡死;Matlab Command Window是另外一个软件进程,我的软件无法操控。
由此引发了本文

2.最终实现的测试效果

3.解决思路
- 继承一个类
threadMatlab继承QThread,用于开启Matlab Engine(开启后,窗口Matlab Command Window); - 写一个类
MatlabCmdDlg继承QDialog,用于显示Matlab Command Window; MatlabCmdDlg开启线程threadMatlab,线程启动Matlab Engine,启动后向MatlabCmdDlg发送消息(启动成功),MatlabCmdDlg收到消息后,寻找Matlab Command Window的窗口句柄,将这个窗口嵌入到这个对话框中。

之后会分几个部分详细描述一下整个过程。
To be continued…

更多推荐
所有评论(0)