Qt作为一款夸平台的UI库 已经在各个领域取得了成功,它的简单,便捷是快速开发界面的首选,MFC, C#等等在我看来都没有它方便。假如你在一个VC项目中你想使用Qt怎么办呢,其实网上有很多使用qtwinmigrate来实现这样的功能,但是qt更新版本是不兼容的,使得只要Qt有升级qtwinmigrate也得跟着升级,遗憾的是qtwinmigrate已经在几年前终止了升级,只能在5.0以下使用,不过也有同学修改了下能在5.0下使用,所以这个方法有就很鸡肋了。
其实Qt是可以直接在VC项目中使用的。
下面就是使用的方法(vs2013 Qt5.6.0为例):
1.我们创建一个MFC 对话框项目,我这里命名为MFCApplication4Dlg
2.设置Qt头文件路径
QTDIR为环境变量名称:
3. 连接器设置:
这里我们只需要窗体相关的dll。
这样我们的工程就做好了 基本配置
4. 添加Qt机制
VC的消息循环机制跟Qt机制是不一样的,所以是不能直接使用的。我们需要将Qt的机制建立起来
我们定义一个成员指针QApplication *m_pQtApp;,并引入头文件#include <QtWidgets/QApplication>, 然后在初始化函数中初始化m_pQtApp。
int argc = 1;
m_pQtApp = new QApplication(argc, NULL);
第二个参数看传入程序路径。
然后在析构函数中结束Qt循环
m_pQtApp->quit();
delete m_pQtApp;
5. 测试
在MFC对话中拖一个按钮,双击添加消息响应函数。
void CMFCApplication4Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
QMessageBox::information(NULL, "这是Qt消息框", "这是Qt消息框");
}
运行效果如下:
出现了乱码,但是至少证明这里使用Qt成功了,
然后我们修改代码
void CMFCApplication4Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
QMessageBox::information(NULL, QStringLiteral("这是Qt消息框"), QStringLiteral("这是Qt消息框"));
}
再次运行
综上已经成功的在VC中使用Qt