Qt环境搭建+简单程序实现

Qt是什么

Qt是一个跨平台的C++图形用户界面应用程序框架。

框架的本质就是一群大佬发明的让菜鸡写出来的代码也也比较规范

也就是限制程序员的自由,让程序员写出来的代码规范。

库和框架有相似性。

库是被程序员调用的,(程序员是主体)

框架是占主体的,由程序员填充一些框架。
在这里插入图片描述

Qt是跨平台的,支持Linux,windwos,Mac,嵌入式系统

Linux中主要是KDE桌面是Qt构建的。

Qt版本

现在主要使用的Qt5版本,大多数企业使用的也是这个。

商业许可:你想使用Qt开发一个程序,就可以向公司买商业许可证

开源许可:开发一个程序,不必花钱,直接白嫖、

就像收费的Linux版本 Redhat,为什么花钱买,为的就是买一份服务。

Qt的优点

跨平台

接口简单,容易上手,学习qt有助于学习其他框架

一定程度上简化了内存回收机制,半自动的垃圾回收机制

开发效率高,能够快速构建应用程序

可以进行嵌入式开发

社区氛围也很好,可以提供较多的资料

Qt的成功案例

WPS Office办公软件

Linux的KDE桌面

Google earth桌面应用

QT开发环境的搭建

分三部分

1.安装C++的编译器,比如gcc,编译器不等于IDE

2.Qt SDK,SDK是软件开发工具包,比如windows版本QtSDK里已经内置了C++编译器,也可以用vs2022,但是需要配置,容易出错。

3.需要有一个Qt的集成开发环境

(1).Qt官方提供的Qt Creator,最容易入门上手的方式,适合新手,但是有些bug,

(2).Visual studio 功能更强,配置的更多,更容易出错,需要给VS安装Qt插件,需要把Qt SDK vs的编译器重新编译,现在也方便一些

qt项目创建

qmake 和cmake

构建系统,通过qt写的程序,通过代码来生成代码,用到一系列元编程技术

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用qt creator 创建项目,会自动生成一些代码来,此处生成的代码就是一个类

在这里插入图片描述

此处就是要选择这个自动生成的父类是谁

QMainWindows,完整的应用窗口,包含菜单栏工具栏,状态栏

Qwidget表示一个控件,比如输入框,按钮,下拉框,复选按钮

Qdialog表示一个会话框

Qt中内置的类都是以前置Q开头的

mainwindow.ui非常关键

可以用图形化界面的方式快速生成界面

对main函数分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

return exec() 表示让程序执行起来。

这个exec和Linux中的exec没用任何关系,只是名字一样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

XML格式

XML是程序员自己约定的

Qt中使用xml文件就是去描述程序的界面是啥样的

进一步的qmake会调用相关的工具,依据这个xml文件,生成一些c++代码,从而把完整的界面构建出来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

qt.pro文件

类似于Linux学习的makefile

makefile其实是一个非常古老的技术了

qmake搭配.pro搭配使用就能达到makefile类似的作用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

编译生成的中间文件

ui_widget.h是widget.ui 和 xml生成的.h文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

helloword实现

1.纯代码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

qt为了让开发更爽,自己开发了一些基础类,比如Qstring,QVector

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

很多年之后,上述等内容已经打磨很好了,形成了C++标准。

很显然,这些已经引入了的Qt自己包装好的这些容器类,也不可能删了,你可以使用标准库的容器,也可以使用标准库的。

所以后续代码会经常见到QString,很少见到std::String。

所以入乡随俗吧

2.图形化界面

年之后,上述等内容已经打磨很好了,形成了C++标准。

很显然,这些已经引入了的Qt自己包装好的这些容器类,也不可能删了,你可以使用标准库的容器,也可以使用标准库的。

所以后续代码会经常见到QString,很少见到std::String。

所以入乡随俗吧

2.图形化界面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

相关文章

06 - python操作xml

认识XML 与HTML很像,是一种将数据存储在标记之间的标记语言,用户可以自定义自己的标记。 XML文件可以表示称为:XML树。这个XML树从根元素开始,根元素进一步分支到子元素。XML文件的每个元素都是XML树的一个节点,没有…

Flink实战五_直播礼物统计

接上文:Flink实战四_TableAPI&SQL 1、需求背景 现在网络直播平台非常火爆,在斗鱼这样的网络直播间,经常可以看到这样的总榜排名,体现了主播的人气值。 人气值计算规则:用户发送1条弹幕互动,赠送1个荧…

在线JSON转SQL工具

在线JSON转SQL - BTool在线工具软件,为开发者提供方便。在线JSON转SQL工具可以将JSON文件中的数据或者JSON对象转换为SQL插入语句,方便用户将数据导入到数据库中。用户可以通过简单的界面上传JSON文件,或者文本框输入,点击JSON转S…

Redis——SpringBoot整合Redis实战

1、基本配置 1.1、引入依赖 首先&#xff0c;建立Maven项目&#xff0c;在Maven项目中引入pom.xml文件&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> &l…

计算机网络_1.6.3 计算机网络体系结构分层思想举例

1.6.3 计算机网络体系结构分层思想举例 1、实例引入&#xff08;用户在主机中使用浏览器访问web服务器&#xff09;2、从五层原理体系结构的角度研究该实例3、练习题 笔记来源&#xff1a; B站 《深入浅出计算机网络》课程 本节通过一个常见的网络应用实例&#xff0c;来介绍计…

灵活应对:策略模式在软件设计中的应用

策略模式是一种行为型设计模式&#xff0c;它允许定义一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以互换使用。策略模式让算法的变化独立于使用算法的客户端&#xff0c;使得在不修改原有代码的情况下切换或扩展新的算法成为可能。 使用策略模式的场景包…

android inset 管理

目录 简介 Insets管理架构 Insets相关类图 app侧的类 WMS侧的类 inset show的流程 接口 流程 WMS侧确定InsetsSourceControl的流程 两个问题 窗口显示时不改变现有的inset状态 全屏窗口上的dialog 不显示statusbar问题 View 和 DecorView 设置insets信息 输入法显…

幻兽帕鲁客户端存档文件 - 云上备份和恢复教程

本文将详细介绍如何将幻兽帕鲁游戏客户端的存档文件备份至云端&#xff0c;以及如何从云端恢复存档数据至本地。 一、游戏存档备份场景 幻兽帕鲁的游戏进度存储在电脑本地磁盘上&#xff0c;游戏中创建的每个世界都对应一个本地存档文件夹。在玩游戏过程中&#xff0c;客户端…

智能边缘计算网关实现高效数据处理与实时响应-天拓四方

在当今时代&#xff0c;数据已经成为驱动业务决策的关键因素。然而&#xff0c;传统的数据处理方式往往存在延迟&#xff0c;无法满足实时性要求。此时&#xff0c;智能边缘计算网关应运而生&#xff0c;它能够将数据处理和分析的能力从中心服务器转移至设备边缘&#xff0c;大…

基于单片机控制的智能门锁设计

摘要&#xff1a;阐述基于STC15F2K60S2单片机控制的智能门锁设计&#xff0c;包括CPU控制单元模块、液晶显示LCD、 Wi-Fi模块&#xff0c;实现远程控制开门&#xff0c;密码开门的智能化功能。 关键词&#xff1a;控制技术&#xff0c;单片机&#xff0c;智能门锁&#xff0c;…

游戏视频录制软件推荐,打造专业电竞视频(3款)

随着游戏产业的快速发展&#xff0c;越来越多的玩家开始关注游戏视频录制软件。一款好的录制软件不仅可以帮助玩家记录游戏中的精彩瞬间&#xff0c;还可以让其与他人分享自己的游戏体验。接下来&#xff0c;我们将介绍三款热门的游戏视频录制软件&#xff0c;并对其进行详细的…

收放卷转动线速度计算FC(SCL+梯形图代码)

这篇博客是收放控制算法的基础系列,通过这篇文章的学习。大家能更好的理解收放卷控制里的前馈量计算,收放卷前馈PID大家可以参考下面链接文章: https://rxxw-control.blog.csdn.net/article/details/129352629https://rxxw-control.blog.csdn.net/article/details/12935262…

3D Line Mapping Revisited论文阅读

1. 代码地址 GitHub - cvg/limap: A toolbox for mapping and localization with line features. 2. 项目主页 3D Line Mapping Revisited 3. 摘要 提出了一种基于线的重建算法&#xff0c;Limap&#xff0c;可以从多视图图像中构建3D线地图&#xff0c;通过线三角化、精心…

06、全文检索 -- Solr -- Solr 全文检索之在图形界面管理 Core 的 Schema(演示对 普通字段、动态字段、拷贝字段 的添加和删除)

目录 Solr 全文检索之管理 Schema使用Web控制台管理Core的Schema3 种 字段解释&#xff1a;Field&#xff1a;普通字段Dynamic Field&#xff1a;动态字段Copy Field&#xff1a;拷贝字段 演示&#xff1a;添加 普通字段&#xff08; Field &#xff09;演示&#xff1a;添加 动…

C++入门的基础

幸福比傲慢更容易蒙住人的眼睛。 ——大仲马 C入门 1、属于C的关键字1、1、C从何而来1、2、C关键字(C98) 2、命名空间2、1、命名空间的定义2、2、命名空间使用 3、C输入和输出4、缺省参数4、1、缺省参数概念4、2、缺省参数分类 5、函数重载5、1、函数重载概念 6、引用6、1、引用…

电脑/机顶盒/ps3/4/连接老电视(只有AV、S-Video接口)解决方案之HDMI转AV/S-Video转换器HAV

HDMI转AV/S-Video转换器功能 01、将HDMI高清信号经过视频处理转换成AV、S-VIDEO(PAL/NTSC)的视频信号输出 02、将HDMI数字音频&#xff0c;经过DAC数模芯片处理转成模拟立体声输出 03、采用先进的视频处理技术&#xff0c;对图像的亮度&#xff0c;对比度及色彩进行增强处理 04…

使用Docker本地部署Jupyter Notebook并结合内网穿透实现远程访问

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

01-操作系统_名词_文件下载_反弹

操作系统_名词_文件下载_反弹 一、渗透测试1.1、POC、EXP、Payload与Shellcode1.2、后门1.3、木马1.4、反弹1.5、回显1.6、跳板1.7、黑白盒测试1.8、暴力破解1.9、社会工程学1.10、撞库1.11、ATT&CK 二、案例演示2.1、基础案例1&#xff1a;操作系统-用途&命令&权限…

Android学习之路(27) ProGuard,混淆,R8优化

前言 使用java编写的源代码编译后生成了对于的class文件&#xff0c;但是class文件是一个非常标准的文件&#xff0c;市面上很多软件都可以对class文件进行反编译&#xff0c;为了我们app的安全性&#xff0c;就需要使用到Android代码混淆这一功能。 针对 Java 的混淆&#x…

【Docker】Docker Registry(镜像仓库)

文章目录 一、什么是 Docker Registry二、镜像仓库分类三、镜像仓库工作机制四、常用的镜像仓库五、常用命令镜像仓库命令镜像命令(部分)容器命令(部分) 六、docker镜像仓库实战综合实战一&#xff1a;搭建一个 nginx 服务综合实战二&#xff1a;Docker hub上创建自己私有仓库综…