当前位置: 首页 > article >正文

【第一个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.kler.cn/a/374420.html

相关文章:

  • 我在命令行下剪辑视频
  • 企业物流管理数据仓库建设的全面指南
  • SpringSecurity框架(入门)
  • ubuntu基于docker-compose部署mysql5.7和mysql8.0
  • SchooWeb2--基于课堂学习到的知识点2
  • AI-基本概念-多层感知器模型/CNN/RNN/自注意力模型
  • 神经网络:解析人工智能的智慧基石
  • WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)
  • 二:Linux学习笔记(第一阶段)-- Linux命令
  • 记一次:Clickhouse同步mysql数据库
  • 基于Spring Boot的医疗陪护系统设计与实现(源码+定制+开发)病患陪护管理平台、医疗服务管理系统、医疗陪护信息平台
  • 【PCL】vs2022配置PCL环境
  • RHCE第三次实验
  • 强大的文本编辑器Notepad++8.4.6 最新版
  • 【回溯】力扣 77.组合
  • [数组基础] 0238. 除自身以外数组的乘积
  • 「Mac畅玩鸿蒙与硬件11」鸿蒙UI组件篇1 - Text 和 Button 组件详解
  • 音频剪辑怎么做?盘点10款高效的音频剪辑工具
  • Android 利用socket 来实现 自动升级apk
  • linux 中文实用型手册 基于RHEL(红帽系)
  • 三网折扣话费充值接口对接详细步骤?
  • 速盾:海外CDN高防解析.提升网站安全与速度
  • 在 .NET 8 Web API 中实现 Entity Framework 的 Code First 方法
  • 【算法系列-二叉树】对称翻转二叉树
  • docker安装、设置非sudo执行、卸载
  • CesiumJS 案例 P15:检测标记、鼠标点击移动标记、鼠标拖动标记