MFC与QT混合编程---在MFC程序中使用QT的组件

本文介绍如何在MFC程序中使用QT组件。通过创建QMfcApp实例并重写CTestApp的run方法,实现了QT与MFC的结合。文中详细记录了从创建简单MFC对话框到集成QT组件的步骤。

版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。

MFCQT 混合编程 ---MFC 程序中使用 QT 的组件

<!-- [if !supportLists]-->1. <!-- [endif]-->创建一个最简单的 MFC Dialog 程序。

<!-- [if !supportLists]-->2. <!-- [endif]--> BOOL CTestApp::InitInstance() 函数中增加
QMfcApp::instance(this);

跟踪到QMfcApp
的代码中可以清楚的看到该静态函数的功能是创建QApplication
实例。

<!-- [if !supportLists]-->3. <!-- [endif]-->重写CTestApprun方法。
       如下:
int CTestApp::Run() 
{   
    int result = QMfcApp::run(this);
    delete qApp;
    return result;
}

        这个我也没大搞明白是什么意思。
QT帮助上说:
QMfcApp:run()
 will then use that QMfcApp::instance, which must then be deleted explicitly using the global qApp pointer.
我也没搞懂什么意思。
4. <!-- [endif]-->在testDlg.h文件中定义:
      QWinWidget *widget;
5. <!-- [endif]-->然后就很简单了。
CTestDialogOnCreate函数中加入:
widget = new QWinWidget( this );
QHBoxLayout *hbox = new QHBoxLayout( widget );
QLabel *label = new QLabel( "Enter text:", widget );
QLineEdit *edit = new QLineEdit( widget );
hbox->addWidget( label );
hbox->addWidget( edit );
widget->move( 0, 0 );
widget->show(); 
6. <!-- [endif]--> CTestDialog  OnDestroy 方法中: 

delete widget;

widget = 0;

<!-- [if !supportLists]-->7. <!-- [endif]--> qmake –project 生成的 .pro 文件中加入:

DEFINES -= UNICODE

DEFINES += _AFXDLL WINVER=0x0500

include(../../../src/qtwinmigrate.pri)

否则编译不过。

<!-- [if !supportLists]-->8. <!-- [endif]-->qmake nmake 运行一下

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值