肥仔教程网

SEO 优化与 Web 开发技术学习分享平台

MFC切换到Qt - Qt入门示例


第一个Qt应用:Hello World

从MFC切换到Qt,最好从一个简单的示例开始。下面是一个基本的Qt窗口应用程序。

项目结构

创建一个新的Qt Widgets应用程序,包含以下文件:

  • main.cpp - 应用程序入口
  • mainwindow.h - 主窗口头文件
  • mainwindow.cpp - 主窗口实现
  • mainwindow.ui - UI设计文件
  • HelloWorld.pro - 项目文件

代码实现

main.cpp

 #include "mainwindow.h"
 #include <QApplication>
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
     MainWindow w;
     w.show();
     return a.exec();
 }

mainwindow.h

 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
 #include <QMainWindow>
 
 QT_BEGIN_NAMESPACE
 namespace Ui { class MainWindow; }
 QT_END_NAMESPACE
 
 class MainWindow : public QMainWindow
 {
     Q_OBJECT
 
 public:
     MainWindow(QWidget *parent = nullptr);
     ~MainWindow();
 
 private slots:
     void on_pushButton_clicked();
 
 private:
     Ui::MainWindow *ui;
 };
 #endif // MAINWINDOW_H

mainwindow.cpp

 #include "mainwindow.h"
 #include "ui_mainwindow.h"
 #include <QMessageBox>
 
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
     , ui(new Ui::MainWindow)
 {
     ui->setupUi(this);
     
     // 设置窗口标题
     this->setWindowTitle("我的第一个Qt应用");
 }
 
 MainWindow::~MainWindow()
 {
     delete ui;
 }
 
 void MainWindow::on_pushButton_clicked()
 {
     // 显示消息框
     QMessageBox::information(this, "欢迎", "欢迎使用Qt!从MFC到Qt的转变将会很顺利!");
 }

HelloWorld.pro

 QT       += core gui
 
 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
 CONFIG += c++11
 
 SOURCES += \
     main.cpp \
     mainwindow.cpp
 
 HEADERS += \
     mainwindow.h
 
 FORMS += \
     mainwindow.ui
 
 # 默认规则以在应用程序代码生成中包含"Debug"
 # 您可以通过为发布构建指定 -config release 命令行参数和在
 # 项目文件中对 debug 变量进行额外处理来改变这一规则
 
 # Default rules for deployment.
 qnx: target.path = /tmp/${TARGET}/bin
 else: unix:!android: target.path = /opt/${TARGET}/bin
 !isEmpty(target.path): INSTALLS += target

UI设计

使用Qt Designer创建UI,或直接编辑mainwindow.ui

  1. 添加一个标签(QLabel)显示"Hello World"
  2. 添加一个按钮(QPushButton)显示"点击我"

对比MFC开发

MFC 概念

Qt 等效

消息映射

信号与槽

资源(.rc)

资源(.qrc)

对话框模板

.ui文件

文档/视图

模型/视图

AfxMessageBox

QMessageBox

CDC

QPainter

UpdateData

无需显式数据交换

CString

QString

构建与运行

  1. 使用Qt Creator打开.pro文件
  2. 选择开发套件
  3. 点击构建和运行按钮

常见问题

  1. 与MFC的区别
  2. Qt使用信号与槽机制而非消息映射
  3. Qt的内存管理更加现代化
  4. Qt跨平台而MFC仅限Windows
  5. 调试提示
  6. 使用qDebug()输出调试信息
  7. Qt Creator提供图形化调试器

下一步

掌握这个简单例子后,可以尝试:

  1. 添加菜单和工具栏
  2. 实现多文档界面
  3. 连接数据库
  4. 使用模型/视图架构
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言