Qt入门——什么是Qt?

Qt背景介绍

什么是Qt?
Qt 是⼀个 跨平台的 C++ 图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是 完全面向对象 的,很容易扩展。Qt 为开发者提供了 ⼀种基于组件的开发模式 ,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用C++ 语言进行高级开发。

图形用户界面:指采用图形方式显示的计算机用户操作界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。比如你的手机/电脑上的界面,都是一种图形化的用户界面

而Qt就是用来开发图形化界面的一门技术,使用Qt进行图形化界面开发,它有两种开发方式:一种是在界面上拖拽组件(有点像画画的方式),一种是用C++代码编写 ,比如你想在界面上布置一个按钮,你可以通过将Qt已有的"按钮"组件,直接将“按钮”拖到界面上合适的位置进行放置,也可以使用C++语言编写代码时按钮放置在界面上

Qt主要用来干什么?

前面说了Qt可以用来开发图形化界面,那么它其实就属于前端技术中的一类,前端开发又分为(网页前端开发、桌面应用开发、移动应用开发),准确的说Qt特指桌面应用开发涉及的一套技术,它不能进行网页前端开发,也不能进行移动应用开发(目前Qt官网也支持移动应用开发了,但是目前没有听说过知名的商用移动应用是Qt开发的)

直接和用户打交道(供用户使用)的程序又叫做"客户端",所以用来开发用户图形化界面的Qt也是一种客户端开发技术

Qt的发展史:

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

1996 年:进入商业领域,它也是目前流行的 Linux 桌面环境 KDE 的基础;

2008年:奇趣科技被诺基亚公司收购,Qt就成为诺基亚旗下的编程工具;

但是呢诺基亚的结局我们都知道,也就是凉凉了~

在2012年诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia

在2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布

2014 年 4 月跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 月 20 日发布了 Qt 5.3 正式版,至此 Qt 实现了对 IOS、Android、Embedded 等各平台的全面支持

Qt支持的平台(几乎支持所有平台
  • Windows ‒ XP、Vista、Win7、Win8、Win2008、Win10
  • Unix/X11 ‒ Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、
  • BSD/OS、和其他很多 X11 平台
  • Macintosh ‒ Mac OS X
  • Embedded ‒ 有帧缓冲支持的嵌⼊式 Linux 平台,Windows CE
  • Android
Qt支持的系统

1)windows(各个版本)

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

3)Mac系统

4)嵌入式系统(嵌入式系统也是Qt实际开发中的一个主要战场,日常使用的一些家电或者一些工业设备内部也有计算机,是一种专用的计算机,也可以称为嵌入式系统,有些嵌入式系统也需要图形化界面,此时就可以使用Qt进行开发)

Qt的优点

  • 跨平台,几乎支持所有的平台;
  • 接口简单,容易上手,学习Qt框架对学习其他框架由参考意义。
  • 一定程度上简化了内存回收机制;
  • 开发效率高,能够快速的构建应用程序;
  • 有很好的社区氛围,市场份额在缓慢上升;
  • 可以进行嵌入式开发

Qt的行业发展方向:

物联网(loT)和嵌入式系统的发展

在当下的嵌入式和物联网行业中,Qt 的作用逐渐得到了体现,因为可以⽤它来开发具有 GUI 界面的嵌入式应用程序,这对于智能家居、汽车以及医疗设备等领域来说,具有非常重要的作用。

自动驾驶和智能交通领域
现在很多的汽车都引⼊了自动驾驶的技术,而Qt 在其中也有着广发的应用,它可以开发车载嵌入式系统和用户界面程序。随着未来⾃动驾驶技术的发展,Qt 在这方面的需求也会不断地增多。

游戏开发:

Qt 有一些非常重要的功能模块,例如 Qt 3D Studio,可以应用于游戏开发。未来游戏行业的持续发展,Qt在游戏行业的发展将会越来越多。

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

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

相关文章

Linux CentOS 安装Python 3.8.0

在 CentOS 上升级 Python 3.6.8 到 3.8.0,可以按照以下步骤操作: 1. 安装依赖 sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel wget 如果遇到报错“File "/bin…

Python爬虫(11)Python数据存储实战:深入解析NoSQL数据库的核心应用与实战

目录 引言一、背景:为什么选择NoSQL存储爬虫数据?1.1 爬虫数据的核心挑战1.2 NoSQL数据库的核心优势 二、NoSQL数据库在爬虫中的核心应用2.1 MongoDB:文档型数据库的王者2.2 Redis:内存数据库的极致性能 三、NoSQL选型与性能优化策…

PCB设计工艺规范(一)概述

PCB设计工艺规范(一) 1.概述2.关键词及引用标准3.PCB板材要求3.1 确定PCB使用板材以及TG值3.2 确定 PCB 的表面处理镀层 4.热设计要求5.器件库选项要求 资料来自网络,仅供学习使用。 1.概述 规范产品的 PCB 工艺设计,规定 PCB 工…

proxychains4系统代理for linux(加速国内github下载速度,pip安装)

1.proxychains4代理安装: sudo apt-get install proxychains42.找到配置文件/etc/proxychains4.conf在[ProxyList]后面添加以下内容: socks5 127.0.0.1 10808 配置如下: 3.使用proxychains4(git clone): proxychains4 git c…

Seata客户端@GlobalTransactional核心源码解析

文章目录 前言一、GlobalTransactional1.1、wrapIfNecessary1.2、handleGlobalTransaction1.3、invoke 二、总结 前言 Seata是阿里开源的分布式事务解决方案。在Spring传统的事务中,开启事务,执行事务,回滚/提交事务,统一由Spring…

pytorch搭建并训练神经网络

#从小白开始学习人工智能# #学习笔记# 工具:pytorch 一、基础概念 1.神经网络是什么? 神经网络是人类受到生物神经细胞结构启发而研究出的算法体系。又称为人工神经网络(Artificial neural network) 最简版神经网络结构图&a…

JavaEE-多线程实战01

Java 多线程入门:第一个多线程程序 在 Java 中,多线程编程是非常重要的一部分。本篇文章将通过示例,带你快速了解如何创建第一个多线程程序,并深入分析其运行机制。 1. 创建一个线程类并继承 Thread 在 Java 中,我们…

Android Compose 无网络状态处理全指南:从基础到高级实践

Android Compose 无网络状态界面处理全方案 引言 在移动应用开发中,网络连接不稳定是常见场景。优雅地处理无网络状态能显著提升用户体验。Jetpack Compose 提供了强大的工具来实现各种网络状态下的界面展示。本文将全面介绍在 Compose 中处理无网络状态的多种方案…

Arduino项目实战与编程技术详解

一、智能避障小车:超声波传感器与PWM电机控制 1.1 硬件需求与工作原理 智能避障小车的核心在于超声波传感器与电机驱动模块的协同工作。超声波传感器(HC-SR04)通过发射高频声波并接收回波来测量距离,而L298N电机驱动模块则负责控制两个直流电机的转向与速度。 1.1.1 超声…

Java在云计算、大数据、云原生下的应用和优势 - 面试实战

Java在云计算、大数据、云原生下的应用和优势 - 面试实战 第一轮提问 面试官:马架构,请简单介绍一下Java在云计算中的主要应用场景有哪些? 马架构:Java在云计算中的主要应用场景包括微服务架构设计、容器化部署(如D…

数据库与大数据技术教程资料

概述 无论你是刚入门的技术新人,还是寻求突破的资深工程师,这份精心整理的电子书合辑将为你打开系统性学习的大门!所有资源支持多端阅读,助力技术成长每一步资料已经整理好,喜欢的朋友请自取:https://pan.…

【Spring Boot 注解】@ConfigurationProperties

文章目录 ConfigurationProperties注解一、简介二、依赖引入三、基本用法四、主要特性五、激活方式六,优点七、与 Value 对比 ConfigurationProperties注解 一、简介 ConfigurationProperties 是 Spring Boot 提供的一个强大注解,用于将外部配置&#…

C++(初阶)(十六)——set

set setset介绍set的构造和迭代器set的增删查findlower_boundmultiset和set的差异 题目[349. 两个数组的交集 - 力扣(LeetCode)](https://leetcode.cn/problems/intersection-of-two-arrays/description/)交集差集[142. 环形链表 II - 力扣(L…

higress之:让流量通过gateway

本来想测跨域问题,结果参数配置过去之后一直没生效,经过了解说是gateway才是设置跨域参数的核心,所以需要让流量通过gateway,捣鼓了半天记录一下 第一步,测试服务是否正常 通过get svc、pod等,发现各pod都…

C盘哪些文件删除之后无影响,可以清理磁盘空间。

C盘是电脑的系统盘,存放了操作系统的重要文件和部分默认安装的软件。当C盘空间不足时,系统可能运行缓慢甚至卡顿,这时清理C盘是一个有效的解决方法。由于C盘包含许多关键数据,清理时需要格外谨慎,以免误删导致系统崩溃。将详细介绍C盘中可以安全删除的文件类型及清理方法,…

开源项目实战学习之YOLO11:ultralytics-cfg-models-fastsam(九)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 1. __init__.py2. model.py3. predict.py4. utils.py5. val.py FastSAM 是一种目标检测和图像分割模型,Ultralytics 是一个在计算机视觉领域广泛使用的库&#x…

Windows11安装Docker

本次安装环境 Windows11(23H2),CPU(12代Intel) 什么是Docker Docker 是一个软件平台,让您可以快速构建、测试和部署应用程序。Docker 将软件打包成名为容器的标准化单元,这些单元具有运行软件所…

C# 在VS2022中开发常用设置

一、基础环境配置 1. 安装必要组件 在 VS2022 安装时确保勾选以下工作负载: ​​使用 .NET 的桌面开发​​(包含 WPF/WinForms)​​ASP.NET 和 Web 开发​​​​.NET 跨平台开发​​​​Azure 开发​​​​数据存储和处理​​ 2. 主题与外…

k8s的volume

一、volume介绍 volume是Pod中能够呗多个容器访问的共享目录。Kubernetes的Volume概念、用途和目的与Docker的Volume比较类似,但两者不能等价。首先,Kubernetes中的Volume定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下;其次,Kubernetes中的Volume与Pod的生…

Java 未来技术栈:从云原生到 AI 融合的企业级技术演进路线

一、云原生架构:重构 Java 应用的运行范式 1.1 微服务架构的深度进化 Java 在微服务领域的实践正从 Spring Cloud 向服务网格(Service Mesh)演进。以 Istio 为代表的服务网格技术,通过 Sidecar 模式实现服务间通信的透明化管理&…