【第一个qt项目的实现和介绍以及程序分析】【正点原子】嵌入式Qt5 C++开发视频

qt项目的实现和介绍

  • 1.第一个qt项目
    •   (1).创建qt工程
      •     [1].创建一个存放qt的目录
      •     [2].新建一个qt工程
      •     [3].编译第一个工程
      •     发生错误时的解决方式
  • 二.QT文件介绍
    •   (1).工程中文件简单介绍
    •   (2).项目文件代码流程介绍
      •     [1].添加qt模块
      •     [2].判断qt版本并添加新模块
      •     [3].配置c++标准
      •     [4].打卡过时告警宏定义
      •     [5].添加工程编译时需要的文件
      •     [6].设置默认的部署规则
    •   (3).修改可执行文件名字
      •     [1].进行工程清除
      •     [2].修改项目文件目标名称
  • 三.qt的主函数程序分析
    •   (1).QApplication介绍
    •   (2).mainwindow界面的显示
    •   (3).等待事件循环
    •   (4).宏文件分析
    •   (5).构造函数分析
    •   (6).析构函数分析


1.第一个qt项目

  (1).创建qt工程

    [1].创建一个存放qt的目录

在这里插入图片描述

    [2].新建一个qt工程

       点击文件或者项目,如下

在这里插入图片描述
      A.qt项目的第一个项目选项介绍

        1.表示带界面的qt应用程序
        2.表示不带界面的qt应用程序
在这里插入图片描述

      B.qt项目的第二个项目选项介绍

        这4个都是用QML语言进行开发的
        1.表示带滚动的应用程序工程
        2.表示带堆叠的应用程序工程
        3.表示带切换窗口的应用程序工程
        4.空白的应用程序工程
在这里插入图片描述

      C.qt项目的第三个项目选项介绍

        该选项表示用python语言的工程
在这里插入图片描述

      D.当前qt项目采用第一个

在这里插入图片描述

      E.填入工程名称和存放路径

        1.先填入名称,名称不可以有中文而且不能有空格
        2.在浏览处选择路径,路径不能有中文,否则可以编译但无法运行
        3,按照以下步骤设置工程路径
在这里插入图片描述

      F.选择编译系统

        有三个,但是一般选择qmake
在这里插入图片描述

      G.选择类的相关信息

        定义类名以及它的基类,一般选择QMainwindow基类即可
在这里插入图片描述

      三个基类选项的不同点

        QMainWindow 在项目中显示状态是这样的
在这里插入图片描述
        QWidget 在项目中的显示状态是这样的
在这里插入图片描述
        QDialog 在项目中的显示状态是这样的
在这里插入图片描述

      UI文件的生成

        勾选这个则生成一个ui文件
在这里插入图片描述

      H.选择翻译文件

        选择翻译文件为null即可
在这里插入图片描述

      I.选择gcc编译器

        选择ubuntu默认选择的gcc编译器即可
在这里插入图片描述

      J.选择工程管理

        如果有git或者svn,则可以选择svn或者git,此例没有则不用选择,然后点击完成即可
在这里插入图片描述

    [3].编译第一个工程

      A.右击之前的项目,选择关闭,关闭之前打开的项目
      B.然后选择这个图标开始运行
在这里插入图片描述

    发生错误时的解决方式

        A.如果报错cannot find -lgl,则说明没有安装opengl
在这里插入图片描述
        B.安装之后此时点击编译,生成一个qt窗口,表示编译成在这里插入图片描述

        安装命令

sudo apt-get install libglul-mesa-dev

二.QT文件介绍

  (1).工程中文件简单介绍

    1.头文件
    2.源文件
    3.窗体文件
在这里插入图片描述

    qt creator中显示的目录实际不存在

      实际上文件夹不存在,是qt creator里面的选项视图可以分类的查看文件
在这里插入图片描述

  (2).项目文件代码流程介绍

.pro表示这个工程的项目文件

    [1].添加qt模块

      A. 这句话表示一个宏,宏QT+=CORE gui(这两个是qt的模块),表示qt添加了core模块和gui模块
      B. core是gui的核心模块,gui是图形界面模块

在这里插入图片描述

      C.qt有哪些主要模块,如下图所示

在这里插入图片描述
      D.如果要添加网络模块,那么如下图所示进行操作

在这里插入图片描述
      添加之后即可在头文件添加网络相关的类,如图所示
在这里插入#pic_center图片描述

    [2].判断qt版本并添加新模块

      接下来判断qt版本,如果当前版本大于qt4,那么qt添加widgets模块
在这里插入图片描述

    [3].配置c++标准

      配置当前c++语言采用c++11标准
在这里插入图片描述

    [4].打卡过时告警宏定义

      打开api过时告警的宏定义,如果使用api过时,就会告警
在这里插入图片描述

    [5].添加工程编译时需要的文件

      添加源文件,头文件和窗体文件,qtcreator创建时自动添加进去了
在这里插入图片描述
如果添加一个不存在的文件进去,那么编译器就会报错,所以需要手动删除,他不会自动删除
在这里插入图片描述

    [6].设置默认的部署规则

      qnx:表示为qnx平台
在这里插入图片描述
      如果是qnx平台,就把目标路径复制成这个路径在这里插入图片描述
      如果是其他平台,则复制为下面这个路径
在这里插入图片描述
      如果目标路径不为空,则将target添加到INSTALLS
在这里插入图片描述

      目前用不到可以进行删除
在这里插入图片描述
      验证修改后是否可以执行

      可以进入build的目录里面找到可执行文件执行,执行的效果和点那个图标的效果一样
在这里插入图片描述

  (3).修改可执行文件名字

    [1].进行工程清除

在这里插入图片描述

    [2].修改项目文件目标名称

      在项目文件加上新的目标文件名,加的方式如下.

      点击编译,即可生成新的不同名字的可执行程序
在这里插入图片描述

      验证:

在这里插入图片描述


三.qt的主函数程序分析

  (1).QApplication介绍

     QApplication是一个用来管理qt程序运行,设置qt引用程序,针对qwidget应用程序的一个类,定义这个对象用来管理,设置qt。

     创建对象时所带入的参数是命令行参数个数argc和命令行参数argv
在这里插入图片描述
     其他相似的类
     1.QGuiApplicatino
     2.QCoreApplication
在这里插入图片描述

  (2).mainwindow界面的显示

     STEP1.定义一个mainwindow的对象
     STEP2.对象调用show函数进行显示
在这里插入图片描述

  (3).等待事件循环

     通过QApplication 的对象调用exec函数来等待键盘或者鼠标等其他的输入,等待到了才返回退出
在这里插入图片描述

  (4).宏文件分析

     Q_OBJECT 表示qt信号槽的宏定义,使用信号槽需要使用到他
在这里插入图片描述

  (5).构造函数分析

     A.构造函数定义时可以在函数后加上:然后进行对象成员的初始化
        如:Mywindow(xx)–初始化Mywindow的parent指针指向为parent形参

        函数ui->setupUi(this)能够联系窗体文件和mywindow.Cpp文件.
        通过将mywindow 类用this传过去,让ui里的mywindow指向cpp里的mywindow,此时操作ui就可以操作到mywindow
在这里插入图片描述

     B.如果要在类中增加变量,如下图所示

在这里插入图片描述
那么构造函数的初始化可以修改为
在这里插入图片描述
也可以在此进行初始化,需要删掉上面的初始化
在这里插入图片描述

     C.验证构造函数添加代码是否成功
在这里插入图片描述

  (6).析构函数分析

     A.析构函数内部实现

     函数内删除创建的ui指针即可
在这里插入图片描述

     B.析构函数的执行需要关闭创建的窗体,结束这个对象才可执行

在这里插入图片描述
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1866.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】命令行参数 | 环境变量

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 前几天在搞硬件&…

【数据结构与算法】第7课—数据结构之队列

文章目录 1. 队列1.1 什么是队列1.2 队列的结构1.3 队列初始化1.4 队列入栈1.5 出队列1.6 查找队列有效元素个数1.7 取队头和队尾数据1.8 销毁链表 2. 用两个队列实现栈3. 用两个栈实现队列4. 循环队列 1. 队列 注:文中Queue是队列,Quene是错误写法 1.1 …

数据结构 ——— 向上/向下调整算法将数组调整为升/降序

目录 向上调整算法(默认小堆) 向下调整算法(默认小堆) 利用向上调整算法对现有数组直接建堆 利用向下调整算法对以建成的小堆数组排降序 举一反三: 那么如何将数组 a 排成升序呢? 向上调整算法&…

一种基于GPU的归并排序并行实现

0️⃣归并排序流程 分割过程:将待排序数组等分为左右子数组,再对左右子数组递归式等分,直至不可分割合并过程:将所有子数组两两递归合并,逐步得到较大有序数组,直到得到完整有序数组 1️⃣传统的并行归并 …

【MySQL】数据类型

目录 一、常见数据类型汇总 二、数值类型 2.1 tinyint 2.2 bit 2.3 float 2.4 decimal 三、字符串类型 3.1 char 3.2 varchar 四、日期和时间类型 五、枚举和集合 5.1 enum枚举 5.2 set集合 一、常见数据类型汇总 分类数据类型说明数值类型BIT(M)二进制位。M指定…

《探索 HarmonyOS NEXT (5.0):开启构建模块化项目架构奇幻之旅 —— 动态路由 ZRouter:引领高效模块通信的智慧中枢》

ZRouter简介:是一款轻量级的动态路由框架,基于Navigation系统路由表和Hvigor插件实现的方案,可以解决多个业务模块(HAR/HSP)之间解耦和通信问题,从而实现业务复用和功能扩展。 ZRouter出处ZRouter&#xff…

网络原理(数据链路层)->以太网帧格式解

前言 大家好我是小帅,今天我们来了解以太网帧格式 个人主页 文章目录 1.数据链路层1.1 认识以太⽹1.2 MAC地址(⽹卡的硬件地址)1.2.1 对⽐理解MAC地址和IP地址 1.3 认识MTU1.4 MTU对IP协议的影响1. 5 MTU对UDP协议的影响1.6 MTU对于TCP协议的…

银行金融知识竞赛活动策划方案

根据《中国人民银行**市中心支行“创新金融服务,支持经济发展”业务竟赛活动实施方案》安排,中支决定于9月28日举办**市人民银行系统“创新金融服务,支持经济发展”现场业务竞赛,为确保业务竞赛组织工作顺利开展,特制定…

渗透测试练习题解析 7 (CTF web)

一、[红明谷CTF 2021]write_shell 1 考点: 1、PHP 短标签 2、 符号的使用 通过代码可知 check 是一个过滤函数,利用正则的方式过滤掉 空格、php、eval 等一些关键字或符号,$dir 是路径,这个值可以通过 actionpwd 获取到&#…

VBA中类的解读及应用第十七讲:类,让文本框在激活时改变颜色(下)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

如何下载安装TestLink?

一、下载TestLink、XAMPP TestLink 下载 |SourceForge.net 备用:GitHub - TestLinkOpenSourceTRMS/testlink-code: TestLink开源测试和需求管理系统 下载XAMPP: Download XAMPP 注意:TestLink与PHP版本有关系,所以XA…

基于SpringBoot+微信小程序+协同过滤算法+二维码订单位置跟踪的农产品销售平台-新

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: “农产品商城”小程序…

实现旺店通到金蝶云星空的数据集成:技术详解

旺店通旗舰版数据集成到金蝶云星空案例分享:入库瞬时成本-生产入库单-1 在企业日常运营中,数据的高效流转和准确对接是确保业务顺利进行的关键。本文将聚焦于一个具体的系统对接集成案例——如何将旺店通旗舰版的数据集成到金蝶云星空,以实现…

selinux与防火墙

一.selinux (1).什么是selinux SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linu。 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也 是能够控制网络服务能否访问系统资源的一道关卡。 (2)…

【论文精读】LPT: Long-tailed prompt tuning for image classification

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀论文精读_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 摘要 2. …

链表详解(三)

目录 链表功能实现链表的查找SLNode* SLFind(SLNode* phead, SLNDataType x)代码 链表任意位置前插入void SLInsert(SLNode**pphead,SLNode* pos, SLNDataType x)代码 链表任意位置前删除void SLErase(SLNode**pphead,SLNode* pos)代码 链表任意位置后插…

有php转go项目经验者优先?

新的一周又来了,今天分享的是上海某公司的一面面经,内容主要就是go、mysql和项目,职位要求如下: 发现一个很有意思的点—有php转go项目经验者优先。想不到还有这种好事,本人就是php转go,跟我有相同经历的朋…

【AI换脸整合包及教程】AI 换脸新潮流:FaceFusion 3.0.0,开启无限创意之旅

在科技飞速发展的今天,人工智能已经深入到我们生活的各个角落。其中,AI 换脸技术以其惊人的创造力和趣味性,吸引了无数人的目光。而在众多 AI 换脸工具中,FaceFusion 3.0.0 脱颖而出,成为了引领潮流的佼佼者。 一、AI …

【智慧中控项目】

智慧中控 前言一、搭建开发环境1.需要做什么?1.1 刷机和启动OrangePi Zero2(全志H616芯片)1.2 在PC上安装虚拟机VM(安装VirtualBox或VMware:这是常用的虚拟机软件工具)1.3 在虚拟机VM(VirtualBo…

“短线看涨”,上升周期中,抓以小波段行情,落袋为安

使用技巧 短线看涨指标属于副图公式,短线怎么操作?看蓝色短期安全线 这个公式主要是在上升周期中,抓以小波段行情为主,落袋为安 弱水三千 只取一瓢 公式 DIFM:(EMA(C,240)-EMA(C,520)); DEAM:EMA(DIFM,180); MACD&#xff08…