Qt学习Day0:Qt简介
0. 关于Qt
Qt是C++的实践课,之前在C++中学习的语法可以有具体的应用场景。Qt的代码量很大,不要死记硬背,学会查询文档的能力更加重要。
建议提升一下相关单词的储备量:
1. Qt是什么?
Qt是一个基于C++语言的图形用户界面(GUI)框架,但是Qt不仅仅可以进行界面开发,还包含很多传统编程的功能:多线程、访问数据库、图像处理、音视频处理、网络通信、文件IO......
下面的程序都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 、微信(4.0以上)等。
Qt的开发产品可以分为三类:
1. 纯软件产品
例如上面的一些知名软件产品。
2. 嵌入式:上位机
3. 嵌入式:自带屏幕的硬件
2. Qt优势(掌握)
Qt最大的优势就是跨平台特性:一次编程,到处编译。
面向对象开发
丰富的API(应用程序接口)和对应的开发文档
易用的开发环境
开源(开源刺客)
3. 新建项目
在新建项目之前,需要先把之前C++设置的编码改回UTF-8,设置完成后重启Qt Creator。
下面是新建并运行一个Qt项目的操作步骤:
1. 点击
2. 直接使用默认的项目类型。
3. 设置项目名称和路径。
4. 使用默认的编译器。
5. 把基类改为QDialog
6. 项目管理界面点击完成。
7. 点击
编译并运行,自带程序会有一个弹窗。
4. 项目结构(掌握)
工作目录:即创建项目时选择的目录,用来存放项目开发时的各种工程文件,包括源代码、贴图、设计文件等。
构建目录:存放编译过程中生成的文件和最终的可执行程序。
打开工作目录,可以看到项目中自带的各种开发对应的文件:
● .pro文件
用于配置项目参数,还可以用于项目导入。
#-------------------------------------------------
#
# Project created by QtCreator 2025-04-23T09:31:34
#
#-------------------------------------------------# 在当前的项目中加入core模块和gui模块
QT += core gui# 如果当前项目的版本大于4,则添加widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets# 项目编译的可执行文件名称
TARGET = Day1_24121_Helloworld
# 项目的模板为应用程序(别动)
TEMPLATE = app# 项目中包含的源文件
SOURCES += main.cpp\dialog.cpp# 项目中包含的头文件
HEADERS += dialog.h# 项目中包含的界面文件
FORMS += dialog.ui
在确认工作目录的路径不包含中文的前提下,双击.pro文件可以导入项目。
● .user文件
不在Qt Creator中显示,但是项目构建后,会在工作目录中自动生成,内部包含了当前项目在当前设备中运行的环境信息,不同的设备此文件不通用,在导入项目之前需要删除此文件。
上面三个文件同属一个类:Dialog
● .cpp源文件用于编写类的定义
#include "dialog.h"
#include "ui_dialog.h"/*** @brief Dialog::Dialog 构造函数* @param parent*/
Dialog::Dialog(QWidget *parent) :
QDialog(parent), // 透传构造
ui(new Ui::Dialog) // 构造初始化列表
{ui->setupUi(this);
}/*** @brief Dialog::~Dialog 析构函数*/
Dialog::~Dialog()
{delete ui; // 释放成员变量的堆内存
}
● .h头文件用于编写类的声明
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog> // 引入对话框窗口的基类头文件namespace Ui {class Dialog;
}/*** @brief The Dialog class 自定义对话框窗口类*/
class Dialog : public QDialog
{
Q_OBJECTpublic:
explicit Dialog(QWidget *parent = 0); // 构造函数
~Dialog(); // 析构函数private:
Ui::Dialog *ui; // 成员变量
};#endif // DIALOG_H
● .ui文件用于编写类的界面
● main.cpp
主程序文件,内部包含主函数,即程序运行的入口。
#include "dialog.h"
#include <QApplication>int main(int argc, char *argv[])
{// 创建了一个QApplication对象(管家)QApplication a(argc, argv);// 创建一个自定义窗口类对象Dialog w;// 展示窗口w.show();return a.exec(); // 进入主事件循环
}
5. 查询文档(掌握)
Qt的使用必须依赖于文档,以下是三种查询文档的方法:
1. 在Windows中打开Assistant程序。
2. 在Qt Creator中点击“帮助”
3. 在Qt Creator中光标定位到要查询的内容,双击键盘F1
查询的类首页结构如下:
注意,当程序运行出现Permission Denied信息时,表示当前项目已经有一个实例在运行了,需要关闭正在运行的实例,重新运行。
如果找不到运行窗口,就点击停止按钮。
6. 调试信息(掌握)
前期学习尽量简化项目,因此在创建项目时,先不选择界面文件。
在Qt中使用QDebug输出调试信息,QDebug可以把信息在后台显示,用户在前台不可见,而C/C++没有前后台的概念。
dialog.h
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QDebug> // 调试信息类class Dialog : public QDialog
{
Q_OBJECTpublic:
Dialog(QWidget *parent = 0);
~Dialog();
};#endif // DIALOG_H
dialog.cpp
#include "dialog.h"Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{// Qt中函数和变量使用小驼峰命名法// 第一个单词全小写,后面的单词首字母大写qDebug() << "你好" << "世界"; // <<之间自动空格qDebug() << "构造函数"; // 分号之后自动换行
}Dialog::~Dialog()
{qDebug() << "析构函数";
}
main.cpp
#include "dialog.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}