Qt学习及使用_第1部分_认识Qt---Qt简介

前言

        学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面.

        参考书:<Qt 6 C++开发指南>(以下称"本书")

        标识说明:概念用粗体+倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字),

                        本书原话内容用深蓝色标识,比较重要的内容用加粗倾斜下划线深蓝色标识

引入

        Qt的一些认识,其中有些部分是所有框架都有的内容

Qt概述

        Qt是一个跨平台应用开发框架(framework),他是用C++语言写的一套类库.特别是图形用户界面(GUI)程序.

        Qt实质上是用C++编写的大型类库,他为跨平台应用开发提供了一个完整的框架.Qt框架包括大量的类,支持GUI、数据库、网络、多媒体等各种应用

        ---解读:应用是指程序员开发,被使用者所使用的程序,也是通常所说的app(移动端).

                    框架是半成品应用,和类库可以理解成是一个东西(上面提到了Qt实质上是一个大型类库).框架可以包含其他框架,类库,也就是说框架可以迭代(递进定义)的.

                    框架内容和文件相同,含数据类型定义,函数定义,全局变量定义等,以面向对象的角度,他们都被定义在类或者接口中.

                    站在程序员的角度,框架封装了硬件标准.框架的内容是模块化的,例如上面说了框架包括GUI、数据库等应用.这里的"应用"和框架一样可能是半成品需要程序员完善.        ---以上为解读

跨平台

        经常听到说什么语言什么框架是跨平台的.笔者把平台简单理解成操作系统.语言或框架都会成为机器码交给CPU执行.所谓跨平台是指语言针对平台(操作系统)开发了对应的编译器,使得操作系统可以识别代码,跨平台由语言或者框架实现,而不是平台主动适应他.

目标平台和主机平台

        目标平台就是开发的Qt代码可以被使用的操作系统.本书列举了几大块,包括桌面端、移动端、嵌入式设备(没有提到web端,就是不支持web开发)桌面端的几种操作系统:Windows,Linux和macOS都支持;移动端的Android,iOS,Windows(这个现在很少了)都支持

        在嵌入式系统中,支持嵌入式Linux,QNX,VxWorks,这些嵌入式设备一般有较强的处理器CPU和丰富的存储器资源,例如轿车的全液晶仪表盘.

        ---解读:这里对电子设备应该有个认识:全液晶仪表盘和电脑一样有CPU,操作系统和内存,显示器.他和个人计算机(PC)的区别在于:

        1.输入方式:个人计算机支持鼠标键盘输入,仪表盘可能没有输入或者有触摸或者其他方式输入

        2.任务:个人计算机是多任务系统,仪表盘是专门任务---显示汽车某些状态        ---以上为解读

        MCU的应用开发:只支持部分单片机开发板,实际产品开发需要深度定制.

        计算机称为主机,主机包括Windows、桌面Linux、macOS等不同主机平台,Qt提供了安装在这3种主机平台上的对应版本.要针对某个目标平台开发应用,必须使用对应平台的Qt.

        ---解读:目标平台不同,开发的Qt版本不同,在本书P2表1-1有说明     

                    这一点不用太担心,笔者估计差别也不大                               ​​​​​​​        ​​​​​​​        ---以上为解读

Qt的高效率

        用Qt编写的源代码经过编译后是在目标平台上运行的原生二进制代码,不想Java代码那样需要虚拟机来运行,所以具有很高的运行效率

Qt许可类型

        Qt许可分为商业许可和开源许可,开源许可又分为GPL许可和LGPL许可.

        商业许可:使用者需要向Qt公司付费(某些模块只有商业许可版本才有),被允许不公开源代码

        GPL许可:用户必须开源,允许商业化销售

        LGPL许可:两种情况--1.修改LGPL许可的Qt代码,必须开源,允许商业化销售

                                           2.以库形式链接或调用使用LGPL许可的Qt代码,可闭源可销售.

        ----因为商业方面不太懂,所以暂时不考虑.先想办法把应用写出来.

小结

        初步认识Qt

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

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

相关文章

Python语法基础篇(包含类型转换、拷贝、可变对象/不可变对象,函数,拆包,异常,模块,闭包,装饰器)

Python语法基础篇&#xff08;二&#xff09; 类型转换拷贝可变对象与不可变对象可变对象不可变对象 函数拆包异常模块闭包装饰器 &#x1f439;&#x1f439;&#x1f439;&#x1f439;&#x1f439;一只正在努力学习计算机技术的小仓鼠&#xff0c;尾部有课程链接哦~&#x…

录制mp4

目录 单线程保存mp4 多线程保存mp4 rtsp ffmpeg录制mp4 单线程保存mp4 import cv2 import imageiocv2.namedWindow(photo, 0) # 0窗口大小可以任意拖动&#xff0c;1自适应 cv2.resizeWindow(photo, 1280, 720) url "rtsp://admin:aa123456192.168.1.64/h264/ch1/main…

ISBN书号查询接口如何用PHP实现调用?

一、什么是ISBN书号查询接口 ISBN数据查询接口是一项图书信息查询服务。它基于全球通用的ISBN编码系统&#xff0c;帮助用户快速获取图书的详细信息&#xff0c;包括书名、作者、出版社、出版时间、价格、封面等关键字段。 该接口广泛应用于电商平台、图书馆管理系统、二手书…

Redis底层数据结构之深入理解跳表(2)

上一篇文章中我们详细讲述了跳表的增添、查找和修改的操作&#xff0c;这篇文章我们来讲解一下跳表在多线程并发时的安全问题。在Redis中&#xff0c;除了网络IO部分和大文件的后台复制涉及到多线程外&#xff0c;其余任务执行时全部都是单线程&#xff0c;这也就意味着在Redis…

Go语言依赖管理与版本控制-《Go语言实战指南》

在现代软件开发中&#xff0c;项目的第三方依赖和版本控制扮演着至关重要的角色。Go 语言自 Go 1.11 引入 Modules&#xff08;模块化管理&#xff09;以来&#xff0c;已经实现了内建的依赖管理机制&#xff0c;彻底摆脱了传统 GOPATH 模式的限制。 本章将深入探讨如何使用 Go…

Appium+python自动化(十一)- 元素定位- 下

1、 List定位 List顾名思义就是一个列表&#xff0c;在python里面也有list这一个说法&#xff0c;如果你不是很理解什么是list&#xff0c;这里暂且理解为一个数组或者说一个集合。首先一个list是一个集合&#xff0c;那么他的个数也就成了不确定性&#xff0c;所以这里需要用复…

stress 服务器压力测试的工具学习

一、stress 工具介绍 tress 是一种工具&#xff0c;可以对符合 POSIX 标准的操作系统施加可配置数量的 CPU、内存、I/O 或磁盘压力&#xff0c;并报告其检测到的任何错误。 stress 不是一个基准测试。它是由系统管理员用来评估其系统扩展性的工具&#xff0c;由内核程序员用来…

不止抓请求:5种开发场景中的抓包组合策略(含 Charles 等工具)

很多开发者用抓包&#xff0c;只在“接口调不通”的时候。 但在复杂项目中&#xff0c;抓包早已不仅是调错工具&#xff0c;更是开发节奏提速器、协作问题解耦器、架构瓶颈探测器。 关键在于——不同场景下&#xff0c;你要用对方法、配对工具。 以下是我根据日常开发实战&a…

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…

计算机系统大作业——程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 物联网工程 学   号 2022112820 班 级 2237301 学 生 孟宇航 指 导 教 师 吴 锐 计算机科学与技术学院 2024年…

〈软件安装管家软件目录〉▷Windows系统版

①装机常用 ☞压缩解压WinRAR7-ZIPBandZip360压缩☞文件工具EverythingOneCommander XYplorer ReNamer ☞卸载软件CCleanerIObitUninstallerUninstall toolGeekAutodesk卸载Adobe卸载Ashampoo☞驱动软件驱动人生&#xff08;离线版&#xff09;驱动精灵&#xff08;离线版&…

CentOS Stream 8 Unit network.service not found

一、问题现象 在 CentOS Stream 8 操作系统中&#xff0c;配置完静态IP 信息&#xff0c;想重启网络服务。 执行如下命令&#xff1a; systemctl restart network 提示信息如下&#xff1a; Failed to restart network.service: Unit network.service not found. 二、问题…

极空间z4pro配置gitea mysql,内网穿透

极空间z4pro配置gitea mysql等记录&#xff0c;内网穿透 1、mysql、gitea镜像下载&#xff0c;极空间不成功&#xff0c;先用自己电脑科学后下载镜像,拉取代码&#xff1a; docker pull --platform linux/amd64 gitea/gitea:1.23 docker pull --platform linux/amd64 mysql:5.…

[假面骑士] 龙骑浅谈

作为一个伪二次元的我&#xff0c;总感觉目前没有什么好番可追。结果某一天在小破站刷到了一个假面骑士相关的视频&#xff0c;我就突发奇想&#xff0c;要不把假面骑士补完算了。 搜了搜&#xff0c;版权全在企鹅哪儿&#xff0c;不想充&#xff0c;于是去找了某盘的资源。果…

F5 GSLB 最佳实践:如何手动将Wide IP 故障转移到另一个数据中心

下面简要介绍如何手动将 Wide IP(用于 DNS 负载均衡)故障转移到另一个数据中心,并提供一些最佳实践。假设您使用 F5 BIG-IP DNS(以前称为 GTM)管理一个 Wide IP,该 IP 引用位于不同数据中心的虚拟服务器 (VIP)。 典型的 GSLB (BIG-IP DNS) 设置 Wide IP:表示您想要全局负…

FART 脱壳某大厂 App + CodeItem 修复 dex + 反编译还原源码

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ FART 脱壳 fartthread 方法在 app 启动的时候&#xff08;ActivityThread&#xff09;开启 fart 线程&#xff0c;休眠 60 秒&#xff0c;等待 app 启动完成后…

在maven项目中 继续增加maven 项目

背景项目 基于若依项目 由于若依项目都是Maven项目有父子结构因此自己建项目 也需如此管理 添加子Maven项目 利用idea 自带工具 maven archetype 这里选 webapp 骨架 在这里构建自己的项目架子即可 将 这个架子加入到启动类中

网络攻防技术十四:入侵检测与网络欺骗

文章目录 一、入侵检测概述二、入侵系统的分类三、入侵检测的分析方法1、特征检测&#xff08;滥用检测、误用检测&#xff09;2、异常检测 四、Snort入侵检测系统五、网络欺诈技术1、蜜罐2、蜜网3、网络欺骗防御 六、简答题1. 入侵检测系统对防火墙的安全弥补作用主要体现在哪…

吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py

前提条件&#xff1a; 1、吴恩达MCP课程&#xff08;5&#xff09;&#xff1a;research_server_prompt_resource.py 2、server_config_prompt_resource.json文件 {"mcpServers": {"filesystem": {"command": "npx","args"…

【Linux】Linux基础指令3

1. which指令 功能&#xff1a;搜索系统指定的命令 2. whereis指令 功能&#xff1a;⽤于找到程序的源、⼆进制⽂件或⼿册 3. grep指令 语法&#xff1a; grep [ 选项 ] 搜寻字符串 ⽂件 功能&#xff1a;在⽂件中搜索字符串&#xff0c;将找到的⾏打印出来 常⽤选项&…