嵌入式学习-QT-Day01

ops/2024/12/28 4:46:53/

嵌入式学习-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项目,操作步骤如下:

  1. 在Qt Creator中点击
  2. 在弹出的窗口中,按照下图所示进行操作

在弹出的窗口中设置项目的名称和路径,注意不要包含任何中文字符和特殊字符

直接点击下一步

在弹出的窗口中,选择基类为“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、注意

当程序正在运行时,再次运行可能会出现下面的情况,只需要关闭当前正在运行的项目重新运行即可。


http://www.ppmy.cn/ops/145570.html

相关文章

centos 释放系统预留内存并关闭Kdump服务

背景&#xff1a;Kdump是Linux系统的一种内核崩溃转储机制&#xff0c;它允许在系统发生内核崩溃&#xff08;例如内核panic&#xff09;时&#xff0c;捕获内存的转储信息&#xff0c;从而帮助事后分析故障原因。该过程需要一块预留内存&#xff08;称为crashkernel内存&#…

finalshell密码解密

finalshell密码解密 在线网站运行java https://c.runoob.com/compile/10/ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.N…

最优二叉搜索树【东北大学oj数据结构10-4】C++

题面 最优二叉搜索树是由 n 个键和 n1 个虚拟键构造的二叉搜索树&#xff0c;以最小化搜索操作的成本期望值。 给定一个序列 Kk1​,k2​,...,kn​&#xff0c;其中 n 个不同的键按排序顺序 &#xff0c;我们希望构造一个二叉搜索树。 对于每个关键 ki​&#xff0c;我们有一个…

基于Spring Boot的旅游推荐系统

一、系统背景与意义 随着旅游业的快速发展&#xff0c;旅游信息在种类和数量上不断增多&#xff0c;管理难度也在增大。基于Spring Boot的旅游推荐系统旨在解决这一问题&#xff0c;通过收集、处理和分析旅游数据&#xff0c;为用户推荐符合其偏好和需求的旅游线路&#xff0c…

如何使用 Django 框架创建简单的 Web 应用?

Django是一个高级的Python Web框架&#xff0c;它鼓励快速开发和干净、实用的设计。 下面&#xff0c;我将详细介绍如何使用Django创建一个简单的Web应用&#xff0c;并提供一些日常开发中的合理化使用建议及注意事项。 一、创建Django项目和应用 安装Django 首先&#xff…

【Maven】Maven的快照库和发行库

1、分类 Maven 支持两种类型的仓库&#xff1a;快照库&#xff08;Snapshot Repository&#xff09;和发行库&#xff08;Release Repository&#xff09;&#xff0c;用于存储不同性质的构件&#xff08;Artifacts&#xff09;。 (1) 快照库 (Snapshot Repository)&#xff…

重温设计模式--10、单例模式

文章目录 单例模式&#xff08;Singleton Pattern&#xff09;概述单例模式的实现方式及代码示例1. 饿汉式单例&#xff08;在程序启动时就创建实例&#xff09;2. 懒汉式单例&#xff08;在第一次使用时才创建实例&#xff09; 单例模式的注意事项应用场景 C代码懒汉模式-经典…

手动修改nginx-rtmp模块,让nginx-rtmp-module支持LLHLS

文章目录 1. 背景2. 开发环境搭建2.1 ffmpeg在ubuntu上安装2.2 nginx-rtmp-module在ubuntu上安装2.3 安装vscode环境2. 修改nginx-rtmp-module2.1 主要更新内容2.2 新增配置项2.3 代码更新3. LLHLS验证方法3.1 配置验证3.2 功能验证4. 注意事项5. 已知问题6. 后续计划1. 背景 …