QT(1)
一、Qt简介
1、Qt是什么
Qt是一门C++实践课,核心定位是系统性认识图形用户界面(GUI)编程(区别于传统MFC框架),同时覆盖多线程、数据库、图像处理、网络通信、文件IO等传统编程技术,是衔接基础C++与实际项目开发的重要桥梁。
Qt的本质是基于C++的跨平台GUI开发框架,但其功能远超图形界面:通过模块化设计,支持从桌面应用(如Skype、WPS)到嵌入式系统(如车载导航、工业控制)的全场景开发,真正实现“一次编程,到处编译”。
以下是Qt开发的具体产品:
2、Qt的核心优势
-
跨平台特性:支持Windows、Linux、macOS、Android、iOS等主流平台,开发时无需修改代码,仅需针对目标平台编译,大幅降低维护成本。
-
面向对象设计:采用C++面向对象编程范式,提供类继承、多态等特性,代码可复用性强,适合大型项目开发。
-
丰富的API与工具链:内置250+个C++类库,覆盖GUI、网络、数据库等全领域;配套Qt Creator集成开发环境(支持代码编辑、调试、UI设计),并提供详细官方文档,降低学习门槛。
-
开源与社区支持:开源版本(LGPL协议)允许商业使用,社区活跃,学习资料(教程、论坛、示例代码)丰富,便于开发者解决问题。
3、Qt项目基础结构
3.1 项目配置文件(.pro)
.pro文件是Qt项目的核心配置文件,用于定义模块依赖、源文件路径、编译选项等。例如,一个基础Qt Widgets项目的.pro文件通常包含:
QT += core gui # 引入核心模块与GUI模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # Qt5及以上需添加widgets模块
TARGET = qt_demo # 生成的可执行文件名
TEMPLATE = app # 项目类型为应用程序
SOURCES += main.cpp dialog.cpp # 源文件列表
HEADERS += dialog.h # 头文件列表
该文件由Qt Creator自动生成,修改时需注意语法规范(如缩进、注释)。
3.2 用户文件(.pro.user)
.pro.user文件是Qt Creator根据当前开发环境(如编译器路径、工作目录)自动生成的用户配置文件,包含项目特定的环境设置。由于不同计算机的开发环境差异较大,提交代码时需删除该文件,避免他人使用时出现环境冲突。
3.3 主文件(main.cpp)
main.cpp是程序的入口文件,主要功能是创建应用程序对象(QApplication)和主窗口对象(自定义对话框/主窗口),并启动事件循环。示例代码:
#include "dialog.h" // 自定义对话框头文件
#include <QApplication> // Qt应用程序核心类int main(int argc, char *argv[]) {QApplication a(argc, argv); // 创建应用程序对象(管理控制流、事件循环)Dialog w; // 创建自定义对话框对象w.show(); // 显示对话框(非模态显示)return a.exec(); // 进入事件循环(阻塞主线程,等待用户操作)
}
3.4 头文件(.h)
头文件用于声明自定义类及其成员函数、成员变量,遵循C++头文件规范(如#ifndef
/#define
防止重复包含)。示例(dialog.h):
#ifndef DIALOG_H // 防止重复包含
#define DIALOG_H#include <QDialog> // 引入QDialog基类(Qt自带,以Q开头)class Dialog : public QDialog { // 自定义对话框类,公有继承QDialogQ_OBJECT // 必须添加的宏,支持信号与槽机制public:Dialog(QWidget *parent = nullptr); // 构造函数(默认参数为nullptr)~Dialog(); // 虚析构函数(确保派生类对象正确释放)
};#endif // DIALOG_H
3.5 源文件(.cpp)
源文件用于实现头文件中声明的成员函数,是程序逻辑的主要载体。示例(dialog.cpp):
#include "dialog.h" // 包含自定义头文件
#include <QDebug> // 引入调试输出类Dialog::Dialog(QWidget *parent) : QDialog(parent) { // 构造函数实现(透传parent参数)qDebug() << "构造函数被调用"; // 输出调试信息(到Qt Creator控制台)
}Dialog::~Dialog() { // 析构函数实现qDebug() << "析构函数被调用";
}
源文件需包含对应的头文件,并实现所有声明的成员函数。
4、Qt开发关键注意事项
4.1 编码设置
创建Qt项目时,需将编码恢复为默认值(UTF-8),避免中文乱码。操作步骤:点击Qt Creator顶部菜单栏“工具”→“选项”→“文本编辑器”→“行为”,设置“默认编码”为“UTF-8”。
4.2 构建与工作目录
-
构建目录:存放编译生成的中间文件(如.o文件、Makefile),默认路径为项目目录下的
build-项目名-编译器-版本
(如build-qt_demo-Desktop_Qt_5_15_2_MinGW_64_bit-Debug
)。若项目无法编译,可尝试取消“Shadow Build”选项(合并构建目录与工作目录,但不推荐日常使用)。 -
工作目录:存放项目源代码、资源文件等开发文件,即创建项目时设置的路径。可通过“项目”→“构建设置”查看或修改工作目录。
4.3 调试信息输出
Qt中调试信息需使用qDebug()函数(而非printf或cout),其特点包括:自动添加空格、每条语句结束后自动换行,输出到Qt Creator的“应用程序输出”面板(仅开发者可见)。示例:
qDebug() << "当前数值:" << value << ",状态:" << status;
该函数支持连续输出,格式清晰,便于调试。
4.4 运行与修改同步
若修改代码后未生效,需关闭正在运行的项目(点击Qt Creator顶部的“停止”按钮),再重新运行。这是因为Qt应用程序运行时会锁定可执行文件,修改后需重启才能加载最新代码。