P2 Qt Creator创建第一个Qt程序

news2024/11/27 4:21:09

 前言

                               

🎬 个人主页:@ChenPi

🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨ 

🔥 推荐专栏2: 《LLinux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨
🌺本篇简介  :这一章我们学一下Qt这个软件如何使用以及创建我们第一个Qt程序

Qt 是一个跨平台的 C++开发库

主要用来开发图形用户界面(Graphical User Interface,简 称 GUI)程序

Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部

Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能

比如多线程、 访问数据库、图像处理、音频视频处理、网络通信、文件操作等

所以如果学嵌入式,那么Qt就是其中一个大方向了

本专栏的使用的

  1. Linux操作系统是Ubuntu18.4 
  2. Qt的版本是Qt5.12.9

01新建一个qt项目

在 Ubuntu18 里打开 Qt Creator,也就是左下角软件中心处点击后,

找到 Qt Creator 的图标 后点击打开。

单击文件 Qt Creator 的文件,选择新建文件或者项目。

注意快捷键 Ctrl + N也可以新建项目

 弹出的新建项目如上图

这里我们可以看到有很多模板(包括项目模板和文件和类模板) 可以使用,

包括 Qt,Qt Quick,Qt for Python,…,C++等等。

作为初学者我们选择第一个 Application(Qt)和 Qt Widgets Application,

所谓的模板就是 Qt 为了方便开发程序,在新建工程 时可以让用户基于一种模板来编写程序,

包括 cpp 文件,ui 文件都已经快速的创建,而不用用 户手动创建这些文件。

这样对用户的开发带来极大的便捷。

当然我们也可以自己手动创建项 目,一个一个往里面加也是可以的。

称处输入项目为“hello_world”

这里的项目路径为我的个人配置的目录,你们按需配置即可 

勾选设为默认的项目路径

这样以后做项目实验时都是默认选择这个目录作为项目路径而 不用自己手动选择路径了。

选择下一步。  

默认已经是选择 qmake 编译,主要用 qmake 生成 Makefile 用于项目的编译。点击下一步即 可。  

 这里默认选择的基类为 QMainWindow。

在 Base class 一项中我们还可以看到还有 QWidget 和 QWialog 这样的基类可以选择。

在 C++中学习什么叫基类,简单的来说,

我们创建 的这个项目是基于 QMainWindow 类去开发的。

默认勾选“Generate form”,意思是生成 ui 窗体 文件 mainwindow.ui。

为了学习方便,我们统一默认基类为 QMainWindow,

但是注意,在嵌入 式里一般不需要标题栏,状态栏等,所以常用的是 QWidget 基类。 

  1. QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏。类似于一般的应用程 序的主窗口。如果您想做个嵌套的窗口程序开发的软件,不妨选择这个 QMainWindow。
  2.  QWidget:是可视界面类的基类,也就是说QMainWindow类也是由QWidget继承封装而来。 所以 QWidget 要比 QMainWindow 功能少一些。 
  3. QDialog:对话框类,建立一个对话框界面。比较少使用此项作为基类。一般以 QMainWindow 和 QWidget 作为基类的居多。

因为 QWidget 不带窗口标题栏等,嵌入式里最好 QWidget。

后面基本一直下一步就可以了,最后点击完成

02 项目文件介绍

 

 Qt Creator 和其他 IDE 开发软件一样。都是分组管理项目内的各种源文件,

下面是项目内 的文件简介。

  1. 01_hello_world.pro 是项目管理文件,这个项目管理文件十分重要,当您加入了文件或者删 除了文件,Qt Creator 会自动修改这个*.pro 文件。有时候需要打开这个*.pro 文件添加我们 的设置项。
  2. Header 分组,这个节点下存放的是项目内所有的头文件*.h。
  3. Source 分组,这个节点下存放的是项目内的所有 C++源码文件*.cpp。
  4. Forms 分组,这个节点下是存放项目内所有界面文件*.ui。*.ui 文件由 XML 语言描述组成, 编译时会生成相应的 cpp 文件,这样交叉编译器就可以编译它了。

注意,有时候.pro文件不一定能给你自动修改,需要自己配置,如果编译不了,找不到错误,可以到pro文件看看文件路径啥的对不对

 我们来看一下pro文件吧,刚开始可能不知道这是干嘛的,没事,我们来讲解一下

第 1 行,添加了 Qt 的支持的模块,core 与 gui 库是 Qt 的默认设置。

第 3 行,比较 Qt5 版本,如果是 Qt5 版本,在 main.cpp 中 application 是在 QtWidgets 中的, 因此要包含这个库。

第 5 行和第 11 行,分别配置的是使用 c++11 和添加 QT_DEPRECATED_WARNINGS 定义。

第 18 行,SOURCES 下的是源文件。

第 22 行,HEADERS 下是头文件。

第 25 行,FORMS 下是 ui 界面文件。

第 28 行,部署默认的规则。

第 29 行,qnx:判断是不是 qnx 操作系统,赋值 target.path = /temp/$${TARGET}/bin。

第 30 行,如果是 unix 系统但不是安卓,赋值 target.path = /opt/$${TARGET}/bin。

第 31 行,如果 target.path 为空目录,赋值 INSTALLS += target。

如果需要修改生成目标的可执行程序名字,可赋值 TARGET = xxx。否则 TARGET 将默认 取值为项目的名字。  

大概就是这样,到时候文件多了的时候,编译不通过,说找不到什么文件,但你明明有的话,你可以进入到此目录看下路径对不对

 再来我们看下UI界面吧

①是控件栏,有各种各样的控件,上方的 Filter 是过滤器,输入首写字母就可以快速定到 我们想要找的控件。

 ②显示的是我们的窗口程序了,上面已经带有 MainWindow 对象及其几个子对象,默认 MainWindow 就带有菜单栏和状态栏。

③是对象栏,②处用到的对象都在③处显示。

④是属性栏,点击③处对象栏的某个对象,就可以在④属性栏里编辑它的属性了。属性项 有很多,包括位置,大小,文字,颜色,字体等等。

03 修改 ui 文件显示 hello world

直接通过拖拽的方法把Label放到Ui布局上 

字体大小在左下角可以修改

 

最后我们Ctrl+R就可以编译运行了 

这就是第一个Qt程序了,不过在后面的学习中,我们尽量使用代码编辑吧,这样逻辑性会好些

下章见,谢谢大家

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

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

相关文章

屏幕分辨率修改工具SwitchResX mac功能特点

SwitchResX mac是可用于修改和管理显示器的分辨率和刷新率。 SwitchResX mac功能和特点 支持多种分辨率和刷新率:SwitchResX可以添加和管理多种分辨率和刷新率,包括自定义分辨率和刷新率。 自动切换分辨率:SwitchResX可以根据应用程序和窗口…

【带头学C++】----- 九、类和对象 ---- 9.10 C++设计模式之单例模式设计

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️麻烦您点个关注,不迷路❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目 录 9.10 C设计模式之单例模式设计 举例说明: 9.10 C设计模式之单例模式设计 看过我之前的文章的,简单讲解过C/Q…

炫酷不止一面:探索JavaScript动画的奇妙世界(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

C#云LIS系统源码 B/S架构,SaaS模式,可扩展性强

基于B/S架构的云LIS检验系统源码,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式,部署一套可支持多家医院检验科共同使用。 采用.Net Core新的技术框架、DEV报表、前端js封装、分…

3D材质编辑:制作被火烧的木头

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格&#xf…

AI材料专题报告:AI革命催生新需求国产替代推动新方向

今天分享的AI系列深度研究报告:《AI材料专题报告:AI革命催生新需求国产替代推动新方向》。 (报告出品方:光大证券) 报告共计:25页 1、算力需求增长催生 800G 光模块需求 算力是数字经济时代新生产力&…

基于深度学习yolov5钢材瑕疵目标检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介简介YOLOv5钢材瑕疵目标检测系统特性1. 数据预处理2. 模型架构3. 训练策略4. 后处理 性能评估 二、功能三、系统四. 总结 一项目简介 # YOLOv5 钢材瑕疵目标…

Navicat 技术指引 | 适用于 GaussDB 分布式的查询功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

优化算法 学习记录

文章目录 相关资料 优化算法梯度下降学习率牛顿法 随机梯度下降小批量随机梯度下降动量法动量法解决上述问题 AdaGrad 算法RMSProp算法Adam学习率调度器余弦学习率调度预热 相关资料 李沐 动手学深度学习 优化算法 优化算法使我们能够继续更新模型参数,并使损失函…

flutter TextPainter 的用法

本文章基于 Flutter 3.16.2 Dart SDK 3.2.2。 TextPainter 是 Flutter 中用于在 Canvas 上绘制文本的类。它允许您在自定义的 CustomPainter 中使用 drawText 方法来绘制文本,并可以控制文本的位置、颜色、字体等属性。 import package:flutter/material.dart;cla…

如何使用 Wordpress?托管, 网站, 插件, 缓存

这是该系列教程的第一个教程,最终将在运行高性能 LEMP 堆栈的阿里云 ECS 实例上运行一个新的 WordPress 站点。 在本教程中,我们将创建一个运行 Ubuntu 16.04 的实例,然后通过创建超级用户并禁用 root 登录来保护服务器,最后配置…

MN316 OpenCPU丨HTTP使用介绍

HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是一个简单的请求-响应协议,通常运行在TCP之上,它指定了客户端可能发送给服务器消息类型以及得到什么类型响应。HTTPS(Hyper Text Transfer Protoc…

Fiddler抓包模拟器(雷电模拟器)

Fiddler设置 List item 打开fiddler,的options 点击OK,重启fiddler 模拟器 更改网络设置 IP可以在电脑上终端上查看 然后在模拟器浏览器中输入IP:端口 安装证书

JVM常见垃圾回收器

串行垃圾回收器 Serial和Serial Old串行垃圾回收器,是指使用单线程进行垃圾回收,堆内存较小,适合个人电脑 Serial作用于新生代,采用复制算法 Serial Old作用于老年代,采用标记-整理算法 垃圾回收时,只有…

django与数据库交互关于当前时间的坑

背景 在线上服务中使用时间进行数据库操作时发现异常,而在本地环境无法成功复现此问题,导致难以进行故障排查。 核心问题 view.py class XxxViewSet(viewsets.ModelViewSet):queryset Xxx.objects.with_status().order_by("status", &quo…

【UE 材质】任务目标点效果

效果 步骤 1. 新建一个工程,创建一个Basic关卡 2. 新建一个材质,这里命名为“M_GoalPoint” 打开“M_GoalPoint”,设置混合模式为“半透明”,勾选“双面” 在材质图表中添加如下节点 此时预览效果如下 继续添加如下节点 此时效果…

dell服务器重启后显示器黑屏

1.硬件层面:观察主机的指示灯 (1)指示灯偏黄,硬件存在问题(内存条有静电,拔出后用橡皮擦擦拭;或GPU松动) a.电源指示灯黄,闪烁三下再闪烁一下,扣下主板上的纽…

解决firefox(火狐)浏览器使用transform: scale导致的border不显示或显示不全的问题;

最近火狐遇到了此问题,查了许久没有解决办法也有说是因为火狐不支持小于1px单位的,也有说火狐浏览器本身的问题,然后也没有解决方案,最后没办法只能用最笨的方法解决。。。。 只针对Firefox使用CSS,使用’-moz-documen…

深度学习疲劳检测 驾驶行为检测 - python opencv cnn 计算机竞赛

文章目录 0 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习加…

红海云eHR 任意文件上传漏洞复现

0x01 产品简介 红海eHR是大中型企业广泛采用人力资源管理系统。红海云是国内顶尖的HR软件供应商,是新一代eHR系统的领导者。 0x02 漏洞概述 红海云EHR系统PtFjk.mob接口处存在未授权文件上传漏洞,攻击者可上传webshell来命令执行,获取服务器权限。 0x03 复现环境 FOFA:…