【Qt】初识Qt

文章目录

  • 一. 行业岗位介绍
  • 二. 什么是客户端?
  • 三. GUI 开发的各自技术方案
  • 四. 什么是框架?
  • 五. Qt 的发展史
  • 五. Qt 支持的系统
  • 六. Qt 的优点

一. 行业岗位介绍

在这里插入图片描述

二. 什么是客户端?

既然 Qt 是用来进行客户端开发的,那我们就要了解什么是客户端

  • 客户端:直接和客户交互的程序,如 Chrome、Steam、qq音乐等 APP

  • 服务器:站在客户端背后的男人,用来j具体完成用户提出的服务

虽然大部分的客户端程序,是需要有背后的服务器来做支持的,但是确实也有些程序,是不需要服务器的,这样的程序(比如画图板,计算器…)同样也是直接和客户打交道,也可以称为 “客户端程序”。

客户端开发的重要任务是编写和用户交互的界面,而和用户交互的界面,有两种典型的风格:

  • 命令行/终端界面(TUI),这个一般是给专业开发人员用的
  • 图形化界面(GUI),这个是给普通用户使用的

Qt 就是用来编写桌面 GUI 程序的一套框架

三. GUI 开发的各自技术方案

在 Windows 下编写 GUI 程序,也是有很多种解决方法的,Qt 只是其中一种,在 Windows 下还有如下方案,可以用来开发 GUI:

  1. Windows API:Windows 系统提供的原生 API,开发起来非常原始,且非常繁琐
  2. MFC:上世纪 90 年代推出,影响力非常深远
  3. Qt:1991 年左右诞生(和 MFC 不同,MFC 早都不更新了,而 Qt 还在不断推陈出新,至今仍然非常有生命力)
  4. Windows Forms:微软给 C#(.net) 量身定做的一套开发 GUI 技术体系
  5. WPF、UWP
  6. Electron:本质是把基于 HTML 这样的网页,打包成一个 Windows 上运行的客户端程序(这个技术体系,最初是用来开发 “atom” 文本编辑器的,后给就寄了,被微软的 VSCode 给干趴)

四. 什么是框架?

具体来说,Qt 是一个跨平台的 C++ 图形用户界面应用程序框架

框架,本质是一群大佬发明出来的,方便让我们菜鸡程序员写出来的代码比较靠谱。在 IT 行业中,越自由、灵活,就越容易出错,框架就是在限制程序员的自由。

库和框架,都是属于大佬把一些代码写好了,让你去使用

  • 库:被程序员调用(程序员是主体)
  • 框架:框架是主体,程序员配合框架,完善填充框架中留出的一些细节(框架是主体)

PS:隔壁 Java 对于框架(比如 Spring)更加依赖,而编写 C++ 代码,框架也很重要。C++ 的生态是割裂、离散的;不像隔壁的 Java,存在一些巨无霸社区,一统天下;C++ 不同的开源社区/大厂,各自有各自的框架,各自为阵;相比之下,像 Qt 这种,能够被大家共同认可的框架,在整个 C++ 生态中是不多见的。

五. Qt 的发展史

1991 年 Qt 最早由奇趣科技开发;

1996 年 进⼊商业领域,它也是⽬前流⾏的 Linux 桌⾯环境 KDE 的基础;

2008 年 奇趣科技被诺基亚公司收购,Qt 称为诺基亚旗下的编程语⾔;

2012 年 Qt ⼜被 Digia 公司收购;

2014 年 4 ⽉ 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 ⽉ 20 ⽇发布了 Qt 5.3 正式版,⾄此 Qt 实现了对 IOS、Android、Embedded 等各平台的全⾯⽀持。

五. Qt 支持的系统

1)Windows(各个版本都有支持)

2)Linux(各种发行版,尤其是 Linux 中的 KDE 桌面就是基于 Qt 构建的)

3)Mac 系统

4)嵌入式系统:日常使用的冰箱、洗衣机、路由器、投影仪等,这些设备内部也有计算机(但是配置不需要很高),有些嵌入式系统,也需要运行图形化界面的程序,这个时候 Qt 就可以起作用了,尤其是在一些工业设备上,当然,在这个领域,Qt 也受到了安卓的挑战。

六. Qt 的优点

• 跨平台,⼏乎⽀持所有的平台;

• 接⼝简单,容易上⼿,学习 QT 框架对学习其他框架有参考意义。

• ⼀定程度上简化了内存回收机制;

• 开发效率⾼,能够快速的构建应⽤程序。

• 有很好的社区氛围,市场份额在缓慢上升。

• 可以进⾏嵌⼊式开发。

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

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

相关文章

如何保证ES和数据库的数据一致性?

在业务中,我们通常需要把数据库中的数据变更同步到ES中,那么如何保证数据库和ES的一致性呢?通常有以下几种做法: 双写 在代码中,对数据库和ES进行双写,并且先操作本地数据库,后操作ES&#xff…

Ubuntu20.04安装并配置vscode

Ubuntu20.04安装并配置vscode vscode安装miniconda安装创建虚拟python3.8环境pytorch和匹配的cuda安装 vscode安装 VSCode可以通过 Snapcraft 商店或者微软源仓库中的一个 deb 软件包来安装。 我们这里选用安装VSCode snap版,打开你的终端(CtrlAltT)并且运行下面的…

px2rem实现vue项目响应式布局

第一步 首先需要在项目中安装px2rem插件 npm install postcss-px2rem px2rem-loader --save 第二步 在项目src目录下新建util文件夹,在util文件夹下新建rem.js文件,内容如下: // rem等比适配配置文件 // 基准大小 const baseSize 14 //…

【机器学习300问】27、什么是决策树?

〇、两个预测任务 (1)任务一:银行预测偿还能力 当前,某银行正致力于发掘潜在的放贷用户。他们掌握了每位用户的三个关键特征:房产状况、婚姻状况以及年收入。此外,银行还拥有过往这些用户的债务偿还能力的…

Linux系统——LVS-DR群集部署及拓展

目录 引言 1.LVS的工作模式及其工作过程 2.列举出LVS调度算法 3.LVS调度常见算法(均衡策略) 3.1固定调度算法:rr,wrr,dh,sh 3.2动态调度算法:wlc,lc,lblc 4.LVS三种工作模式区别 一、I…

更快更强,Claude 3全面超越GPT4,能归纳15万单词

ChatGPT4和Gemini Ultra被Claude 3 AI模型超越了? 3月4日周一,人工智能公司Anthropic推出了Claude 3系列AI模型和新型聊天机器人,其中包括Opus、Sonnet和Haiku三种模型,该公司声称,这是迄今为止它们开发的最快速、最强…

Linux系统——SElinux

目录 前言 一、SELinux 的作用及权限管理机制 1.SELinux 的作用 1.1DAC 1.2MAC 1.3DAC 和 MAC 的对比 2.SELinux 基本概念 2.1主体(Subject) 2.2对象(Object) 2.3政策和规则(Policy & Rule)…

Nginx+Tomcat实现负载均衡动静分离

目录 一、背景与环境 1. 背景 2. 环境图示 3. 目标 二、操作过程 1. 第一层 2. 第二层 一、背景与环境 1. 背景 在一个Web应用程序中,通常会将动态内容(由Tomcat处理)与静态内容(如图片、CSS、JavaScript文件等&#xff…

什么是5G边缘计算网关?

随着5G技术的飞速发展和普及,边缘计算作为5G时代的关键技术之一,正日益受到业界的关注。而5G边缘计算网关,作为连接5G网络和边缘计算节点的桥梁,扮演着至关重要的角色。HiWoo Box,作为一款卓越的5G边缘计算网关&#x…

springcloud:3.5测试慢调用熔断降级

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用:http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

学习大数据,所必需的java基础(8)

文章目录 字符缓冲流字符缓冲输出流 _Buffered和Writer字符缓冲输入流字符缓冲流练习 转换流字符编码字符集转换流转换流_OutputStreamWriter序列流和反序列流的介绍序列化流_ObjectOutputStream反序列化_ObjectInputStream不想被序列化操作反序列化时出现的问题以及分析和解决…

解决:hive数据库初始失败

1、背景 采用Mysql数据库保存hive元数据时,我们一般是这样操作: 启动mysql服务;用mysql新建一个库(比如库名为"hive“,这个“hive”与hive-site.xml中的local:3306/hive的“hive”对应,是用来保存hiv…

滴滴基于 Clickhouse 构建新一代日志存储系统

ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库,支持向量化计算引擎、多核并行计算、高压缩比等功能,在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用,服务网约车和日志检索等核心平…

SkyWalking 本地启动以及闪退问题

1. 下载包 Downloads | Apache SkyWalking SkyWalking APM包含OAP和UI Java Agent 就是Java 的探针 2. 运行 UI 默认端口是 8080, OAP 默认端口是 11800(grpc)12800(http) 如果占用可以修改配置文件 UI 项目的配…

LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤

一 LVS 负载均衡部署的模式 LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。 (一)三种模式原理 及优缺点 1,nat 模式 1.1 原理 原理:首先负载均衡器接收到客户的请求数据包时&am…

GPT-4技术解析:与Claude3、Gemini、Sora的技术差异与优势对比

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…

b站小土堆pytorch学习记录—— P18-P22 神经网络+小实战

文章目录 一、卷积层 P181.卷积操作2.代码 二、池化层 P191.池化层简单介绍2.代码(1)池化操作中数字的变化(2)池化操作对图片的影响 三、非线性激活 P201.简要介绍2.代码 四、线性层及其他层介绍 P211.线性层2.代码 五、搭建小实战…

Conda快速安装的解决方法(Mamba安装)

如果你的Conda安装了,你可能会发现一个问题,就是使用Conda install 安装某个软件时,会特别慢,这时候呢?你会上网去搜,然后大家解决的方法呢。一是告诉你镜像可以下载快一点,二是,Mam…

基于逻辑回归实现乳腺癌预测(机械学习与大数据)

基于逻辑回归实现乳腺癌预测 将乳腺癌数据集拆分成训练集和测试集,搭建一个逻辑回归模型,对训练集进行训练,然后分别对训练集和测试集进行预测。输出以下结果: 该模型在训练集上的准确率,在测试集上的准确率、召回率和…

hyperf 二十五 数据迁移 一

教程:Hyperf 版本说明 一 生成迁移 php bin/hyperf.php gen:migration create_users_table 执行文件:Hyperf\Database\Commands\Migrations\GenMigrateCommand 功能:创建迁移文件 参数: name 文件名称 选项: c…