嵌入式学习-QT-Day01
嵌入式学习-QT-Day01
Qt简介
1、Qt是什么?
2、新建项目
3、构建目录和工作目录
3.1、构建目录
3.2 工作目录
4、项目结构
4.1 项目配置文件.pro
4.2 用户文件.user
4.3 主文件 main.cpp
4.4 头文件dialog.h
4.5 源文件dialog.cpp
5、帮助文档
6、调试信息
7、注意
Qt简介
1、Qt是什么?
Qt是一个基于C++的图形用户界面(GUI)开发框架,但是Qt不仅仅能开发界面,还包含了很多的传统编程技术:多线程、数据库、图像处理、网络通信、文件IO。。。。。。。等
以下是Qt开发的具体产品:
等等等,包括但不限于以上的场景。
Qt主要的优势是优良的跨平台特性。(一次编程,到处编译)
比如:windows、Linux、android、SunOS等等
另外Qt也拥有一些常规的特性:
- 面向对象开发(使用C++进行编程)
- 丰富的API调用接口。配套了对应的开发文档。
- 易用的开发软件
- 开源(源代码开放,学习资料多)
2、新建项目
本次Qt的开发仍然使用C++课程中的Qt Creator,但是需要把软件的编码恢复到默认的编码。
更改完成后,才可以新建一个正常支持中文的Qt项目,操作步骤如下:
- 在Qt Creator中点击
- 在弹出的窗口中,按照下图所示进行操作
在弹出的窗口中设置项目的名称和路径,注意不要包含任何中文字符和特殊字符。
直接点击下一步
在弹出的窗口中,选择基类为“QDialog”,取消创建界面选项,然后点击下一步。
在项目管理界面,直接点击完成,可以看到项目中包含的文件。
点击可以编译并运行项目。项目运行后可以看到一个可视化的窗口。
3、构建目录和工作目录
项目运行后,存在两个重要的项目:构建目录与工作目录。
3.1、构建目录
存放项目编译过程中生成的文件,这个目录的位置:
3.2 工作目录
工作目录就是创建项目时设置的目录,用于存放项目的源代码文件等开发文件。
工作目录可以通过下面的方式进行定位。
工作目录中包含以下文件:
本门作业提交方式:工作目录打包。
4、项目结构
4.1 项目配置文件.pro
在windows的文件管理器中,直接双击.pro文件即可导入项目。
#-------------------------------------------------
#
# Project created by QtCreator 2024-11-22T09:37:25
#
#-------------------------------------------------
# 添加core核心模块、gui传统图形界面模块
QT += core gui
# 当Qt主版本号大于4(当前5.4)时,添加新的图形界面模块widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 生成的可执行exe的名称:hello_81
TARGET = hello_81
# 项目架构模式
TEMPLATE = app
# 项目中包含的源文件
SOURCES += main.cpp\
dialog.cpp
# 项目中包含的头文件
HEADERS += dialog.h
4.2 用户文件.user
用户文件在Qt Creator中不可见,但是确实存在于工作目录中(项目构建后)。
此文件是Qt根据当前计算机的开发环境自动生成的文件,每个计算机几乎不通用此文件,因此在提交代码的时候,先删除此文件。
4.3 主文件 main.cpp
程序的入口,包含主函数,通常不需要改动主文件代码。
#include "dialog.h"
// QApplication类管理GUI应用程序的主控制流和主设置
#include <QApplication>
// main主函数,程序的入口
int main(int argc, char *argv[])
{
// 创建了一个管家类栈对象,管理整个应用程序
QApplication a(argc, argv);
// 床架i拿了一个自定义对话框类的栈内存对象
Dialog w;
// 显式
w.show();
// 进入主时间循环
return a.exec();
}
4.4 头文件dialog.h
在Qt中一个自定义类的声明都写在.h中,这个类所用到的其他类头文件,也在此文件中引入。
#ifndef DIALOG_H
#define DIALOG_H
// 添加头文件QDialog对话框基类,Qt自带类型通常使用Q开头
#include <QDialog>
// 自定义对话框类
// 继承QDialog(对话框窗口基类)
class Dialog : public QDialog
{
// 先放着
Q_OBJECT
// 公有权限
public:
// 构造函数
Dialog(QWidget *parent = 0);
// 析构函数
~Dialog();
};
#endif // DIALOG_H
4.5 源文件dialog.cpp
包含与同名的头文件配套的类外定义。
#include "dialog.h"
// 构造函数定义
// 参数
Dialog::Dialog(QWidget *parent)
: QDialog(parent) // 透传构造
{
}
// 析构函数
Dialog::~Dialog()
{
}
5、帮助文档
学习Qt一定要学习如何查询文档,通常对于不常用的内容在编程开发时都是随用随查的,官方文档是第一手资料。
有三种查询的方式:
1、直接启动Assistant程序,是一个独立的文档程序。
打开Assistant程序后,点击索引,在输入框中输入想要查询的内容即可。
在Qt Creator中直接点击,可以打开一个内嵌的Assistant程序。
光标定位到要查询的内容上,双击键盘的F1 ,可以直接跳到对应的文件内容。
帮助文档需要关注的重点内容
6、调试信息
在C语言与C++中,无论是printf还是cout输出的内容都不群分前后台,但是Qt中输出的内容是区分前台后台的,前台指的是图形用户界面,用户可以直接通过软件界面看到的内容。
后台的输出需要使用QDebug类的qDebug()函数输出调试信息,支持中文,震哥哥使用的方式cout类似,但是有以下区别。
- 连续输出时,自动添加空格
- 每次输出语句结束时,自动添加换行。
后台指的是在Qt Creator的(控制台)中,这里显式的信息用户看不到,只对开发者开放。
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
// 添加头文件QDialog对话框基类,Qt自带类型通常使用Q开头
#include <QDialog>
#include <QDebug>
// 自定义对话框类
// 继承QDialog(对话框窗口基类)
class Dialog : public QDialog
{
// 先放着
Q_OBJECT
// 公有权限
public:
// 构造函数
Dialog(QWidget *parent = 0);
// 析构函数
~Dialog();
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
// 构造函数定义
// 参数
Dialog::Dialog(QWidget *parent)
: QDialog(parent) // 透传构造
{
qDebug() << "构造函数" << "被调用了";
qDebug() << "构造函数" << "被调用了";
}
// 析构函数
Dialog::~Dialog()
{
}
7、注意
当程序正在运行时,再次运行可能会出现下面的情况,只需要关闭当前正在运行的项目重新运行即可。