QT基础一、学会建一个项目
- 游戏开发
- 2025-09-09 03:15:02

注:因为CSDN有很多付费才能吃到的史,本人对此深恶痛绝,所以我打算出一期免费的QT基础入门专栏,这是QT基础知识的第一期,学会建一个项目,本专栏是适用于c / c++基础不错的朋友的一个免费专栏,接下来的内容会涉及到许多术语或者说专有名词,对于不懂编译链、编辑器、调试器 (也就是从未自己装过c环境的朋友可以绕道了) ,c++STL不懂的朋友,请去打好基础,再来学习。这一篇文章不涉及QT的安装,如果有需要的,可以在评论区留言,我未来会出一期。
一、新建项目 1、点击文件,再点击新建文件或项目 2、选择Application ---> QT Widgets Application --->Choose
创建一个图形化的窗口小部件
3、创建项目名字 4、默认下面可以自己改类的名字,因为我这个只是一个demo,就全默认了
5、初学者建议选mingw 6、点击完成 7、创建成功的样式
点击Forms目录下的后缀为ui的文件后,会跳出这样的窗口
再点击编辑模式(别告诉我你这也不会),会跳出一个xml的界面(这个我未来应该会讲)
到此,你成功的创建一个空项目,为自己喝彩吧,你迈出了第一步
二、编辑图形窗口 1、打开ui文件 2、在搜索框依次搜索 label(标签)、edit (编辑)、button(按钮)
这些全都是label(拖动到窗口就行)
新增加的是 line edit
新增加的是push button
3、可以修改这些部件在程序中的name(用过前端的应该懂)点击姓名,右下角可修改
其它的都是一样的操作,修改完后
三、运行项目
运行之后,点击注册没有反应,是因为没有建立对应的槽函数(槽函数是什么后面会讲)
1、右键注册,点击转到槽 2、选择clicked(),表示单击自动生成了一个函数
3、添加QMessageBox头文件,运行下列代码 void MainWindow::on_submitButton_clicked() { // 当用户点击提交按钮时,该函数会被自动调用 // 从userNameEdit文本框中获取用户输入的用户名,并将其与欢迎信息拼接成一个完整的字符串 QString str = "亲爱的" + ui->userNameEdit->text() // 取出userNameEdit里的内容(即用户输入的用户名) + ", 欢迎来到召唤师峡谷"; // 拼接欢迎信息 // 使用QMessageBox弹出一个信息提示框,显示欢迎信息 // 参数说明: // this: 父窗口指针,表示该消息框属于当前窗口 // "Welcome": 消息框的标题 // str: 显示在消息框中的内容,即上面拼接好的欢迎信息 // QMessageBox::Ok: 消息框中的按钮类型,这里只显示一个“确定”按钮 QMessageBox::information(this, "Welcome", str, QMessageBox::Ok); } 4、运行之后,点击注册四、理解源码 1、main.cpp的代码 #include "mainwindow.h" // 包含主窗口类的头文件,MainWindow类定义在此文件中 #include <QApplication> // 包含QApplication类的头文件,QApplication用于管理应用程序的控制流和主要设置 int main(int argc, char *argv[]) { // 创建一个QApplication对象,用于管理应用程序的资源和事件循环 // argc 和 argv 是命令行参数,传递给QApplication以处理可能的命令行选项 QApplication a(argc, argv); // 创建MainWindow对象,即应用程序的主窗口 MainWindow w; // 显示主窗口,调用show()函数使窗口可见 w.show(); // 进入应用程序的主事件循环,等待用户交互(如鼠标点击、键盘输入等) // exec()会一直运行,直到应用程序退出(如关闭窗口),并返回退出码 return a.exec(); } 2、1-demo.pro 的代码 # 添加Qt的核心模块和图形用户界面模块 QT += core gui # 如果Qt的主版本号大于4(即使用的是Qt5或更高版本),则添加widgets模块 # widgets模块包含了常用的UI控件,如按钮、文本框等 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # 启用C++11标准,确保可以使用C++11的新特性 CONFIG += c++11 # 定义QT_DEPRECATED_WARNINGS宏,使编译器在使用已被标记为过时的Qt功能时发出警告 # 这有助于开发者识别并逐步淘汰旧的API,改用新的替代方案 DEFINES += QT_DEPRECATED_WARNINGS # 如果希望代码在使用过时的API时直接编译失败,可以取消下面这行的注释 # 这可以帮助强制开发者避免使用已经废弃的功能 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # 禁用Qt 6.0.0之前的所有已废弃API # 指定项目的源文件列表 # main.cpp: 应用程序的入口点,包含main()函数 # mainwindow.cpp: 主窗口类的实现文件 SOURCES += \ main.cpp \ mainwindow.cpp # 指定项目的头文件列表 # mainwindow.h: 主窗口类的声明文件 HEADERS += \ mainwindow.h # 指定项目的UI文件列表 # mainwindow.ui: 使用Qt Designer设计的主窗口界面文件,最终会被uic工具转换为C++代码 FORMS += \ mainwindow.ui # 默认的部署规则,指定目标文件的安装路径 # 如果目标平台是QNX,则将可执行文件安装到/tmp/$${TARGET}/bin目录下 qnx: target.path = /tmp/$${TARGET}/bin # 如果目标平台是Unix(但不是Android),则将可执行文件安装到/opt/$${TARGET}/bin目录下 else: unix:!android: target.path = /opt/$${TARGET}/bin # 如果target.path不为空,则将目标文件添加到安装列表中 !isEmpty(target.path): INSTALLS += target 3、mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> // 包含QMainWindow类的头文件,QMainWindow是Qt中用于创建主窗口的基类 QT_BEGIN_NAMESPACE // 进入Qt命名空间,确保与Qt相关的代码在正确的命名空间中 namespace Ui { class MainWindow; } // 前向声明Ui::MainWindow类,该类是由Qt Designer生成的UI界面类 QT_END_NAMESPACE // 结束Qt命名空间 // 定义MainWindow类,继承自QMainWindow,表示应用程序的主窗口 class MainWindow : public QMainWindow { Q_OBJECT // 使用Q_OBJECT宏,启用Qt的信号与槽机制、国际化支持等功能 public: // 构造函数,初始化MainWindow对象 // parent参数指定父窗口部件,默认为nullptr(即没有父窗口) MainWindow(QWidget *parent = nullptr); // 析构函数,释放MainWindow对象占用的资源 ~MainWindow(); private slots: // 槽函数,当用户点击submitButton按钮时,会自动调用该函数 void on_submitButton_clicked(); private: // 指向Ui::MainWindow对象的指针,用于访问由Qt Designer设计的UI界面元素 Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
4、mainwindow.cpp
#include "mainwindow.h" // 包含MainWindow类的头文件,定义了主窗口类 #include "ui_mainwindow.h" // 包含由Qt Designer生成的UI界面类的头文件 #include <QMessageBox> // 包含QMessageBox类的头文件,用于显示消息框 // MainWindow类的构造函数,初始化主窗口对象 // parent参数指定父窗口部件,默认为nullptr(即没有父窗口) MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) // 调用QMainWindow的构造函数,设置父窗口 , ui(new Ui::MainWindow) // 创建Ui::MainWindow对象,用于管理UI界面元素 { ui->setupUi(this); // 调用setupUi函数,将UI界面与当前窗口关联 } // MainWindow类的析构函数,释放主窗口对象占用的资源 MainWindow::~MainWindow() { delete ui; // 删除Ui::MainWindow对象,释放内存 } // 槽函数:当用户点击submitButton按钮时,会自动调用该函数 void MainWindow::on_submitButton_clicked() { // 当用户点击提交按钮时,该函数会被自动调用 // 从userNameEdit文本框中获取用户输入的用户名,并将其与欢迎信息拼接成一个完整的字符串 QString str = "亲爱的" + ui->userNameEdit->text() // 取出userNameEdit里的内容(即用户输入的用户名) + ", 欢迎来到召唤师峡谷"; // 拼接欢迎信息 // 使用QMessageBox弹出一个信息提示框,显示欢迎信息 // 参数说明: // this: 父窗口指针,表示该消息框属于当前窗口 // "Welcome": 消息框的标题 // str: 显示在消息框中的内容,即上面拼接好的欢迎信息 // QMessageBox::Ok: 消息框中的按钮类型,这里只显示一个“确定”按钮 QMessageBox::information(this, "Welcome", str, QMessageBox::Ok); }五、QT里的ui文件是如何参与编译的?
在Qt中,.ui文件通过以下步骤参与编译:
1、设计界面 :使用Qt Designer创建 .ui文件(XML格式),描述界面布局和控件
2、转换为C++代码 :构建系统(如qmake或CMake)调用uic工具,将.ui文件转换为C++头文件(如ui_mainwindow.h)
3、绑定界面与逻辑 :生成的头文件被包含到主程序中,通过setupUi函数将界面与窗口关联
4、编译与运行 :生成的代码与其他源文件一起编译,最终生成可执行文件
程序员只需修改.ui文件,构建系统会自动处理其余步骤。
QT基础一、学会建一个项目由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“QT基础一、学会建一个项目”