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. 纯软件产品

例如上面的一些知名软件产品。

  1. 嵌入式:上位机

  1. 嵌入式:自带屏幕的硬件

2. Qt优势(掌握)

Qt最大的优势就是跨平台特性:一次编程,到处编译。

面向对象开发

丰富的API(应用程序接口)和对应的开发文档

易用的开发环境

开源(开源刺客)

3. 新建项目

在新建项目之前,需要先把之前C++设置的编码改回UTF-8,设置完成后重启Qt Creator。

下面是新建并运行一个Qt项目的操作步骤:

  1. 点击
  1. 直接使用默认的项目类型。
  1. 设置项目名称和路径。
  1. 使用默认的编译器。
  1. 把基类改为QDialog
  1. 项目管理界面点击完成。
  1. 点击

编译并运行,自带程序会有一个弹窗。

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源文件用于编写类的定义

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头文件用于编写类的声明

cpp 复制代码
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog> // 引入对话框窗口的基类头文件

namespace Ui {
    class Dialog;
}

/**
 * @brief The Dialog class 自定义对话框窗口类
 */
class Dialog : public QDialog
{
Q_OBJECT

public:
explicit Dialog(QWidget *parent = 0); // 构造函数
~Dialog(); // 析构函数

private:
Ui::Dialog *ui; // 成员变量
};

#endif // DIALOG_H

● .ui文件用于编写类的界面

● main.cpp

主程序文件,内部包含主函数,即程序运行的入口。

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程序。
  1. 在Qt Creator中点击"帮助"
  1. 在Qt Creator中光标定位到要查询的内容,双击键盘F1

查询的类首页结构如下:

注意,当程序运行出现Permission Denied信息时,表示当前项目已经有一个实例在运行了,需要关闭正在运行的实例,重新运行。

如果找不到运行窗口,就点击停止按钮。

6. 调试信息(掌握)

前期学习尽量简化项目,因此在创建项目时,先不选择界面文件。

在Qt中使用QDebug输出调试信息,QDebug可以把信息在后台显示,用户在前台不可见,而C/C++没有前后台的概念。

dialog.h

cpp 复制代码
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QDebug> // 调试信息类

class Dialog : public QDialog
{
Q_OBJECT

public:
Dialog(QWidget *parent = 0);
~Dialog();
};

#endif // DIALOG_H

dialog.cpp

cpp 复制代码
#include "dialog.h"

Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
    // Qt中函数和变量使用小驼峰命名法
    // 第一个单词全小写,后面的单词首字母大写
    qDebug() << "你好" << "世界"; // <<之间自动空格
    qDebug() << "构造函数"; // 分号之后自动换行
}

Dialog::~Dialog()
{
    qDebug() << "析构函数";
}

main.cpp

cpp 复制代码
#include "dialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();

    return a.exec();
}
相关推荐
struggle2025几秒前
LazyOwn RedTeam/APT 框架是第一个具有人工智能驱动的 C&C 的 RedTeam 框架
c语言·开发语言·python·html·powershell
虾球xz1 分钟前
CppCon 2014 学习: C++ on Mars
java·开发语言·c++·学习
vortex56 分钟前
Perl One-liner 数据处理——基础语法篇【匠心】
开发语言·scala·perl
Brookty18 分钟前
【MySQL】事务
数据库·后端·学习·mysql
Elastic开源社区18 分钟前
Java生态中的NLP框架
java·开发语言·自然语言处理·nlp
编码小笨猪25 分钟前
[ Qt ] | 与系统相关的操作(一):鼠标相关事件
开发语言·c++·qt
wb1891 小时前
shell脚本的条件测试
开发语言·python·excel
Chef_Chen1 小时前
从0开始学习R语言--Day15--非参数检验
学习
真的想上岸啊2 小时前
学习STC51单片机25(芯片为STC89C52RCRC)
单片机·嵌入式硬件·学习
王子文-上海2 小时前
风控研发大数据学习路线
大数据·学习