一、QT的前世今

一、Qt是什么

  1、Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务。

  2、Qt是面向对象的框架,具有面向对象语言的特性:封装、继承、多态。

  3、2008年,奇趣科技被诺基亚公司收购,当时诺基亚手机上的很多应用都是用QT开发的。我也是从那一年才知道的Qt。

  4、2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,实现了全面支持iOS、Android、Windows、Linux。使得QT开发的程序可以遍布桌面、手机、嵌入式等各种不同的设备上。

二、Qt和Qt Creator

Qt是基于C++语言写的用于Qt开发的Q打头的类库集合,或者说是开发框架,里面集成了一些库函数,提高开发效率。

Qt Creator是用Qt开发的IDE,是开发环境,也可以叫开发工具,类似的像VS、VSCode、Pycharm,也可以进行Qt开发,当然VS中的Qt是作为一个插件集成到VS平台的。

三、Qt的特点

  1、基于 C++ 的一种语言扩展(Extention)

    Qt 的类都是用 C++ 写出来的。这也就是说, Qt 本身已经继承了C++的快速、简易、面向对象等许多的优点。并且封装成好多的库类供使用,不用担心底层的跨平台兼容性问题。如我们最常用的serialport, file, I/O device, date/time,socket等。

  2、可移植性

    Qt不只是可以在 Linux 中运行,也同样可以运行在 Windows 、Mac OS X等多种不同的平台中。包括现在大放光彩的国产操作系统上,如中标麒麟的龙芯,统信UOS等。

  3、高效

    Qt运行时无需依赖“虚拟机”,可直接操作内存,因而使用Qt开发的应用程序运行速度快。Qt管理好内存,比Java\C#等占用的内存空间更小。所以Qt在比如音视频播放器、视频监控软件、工业控制软件、嵌入式软件、汽车车机方面是最好的选择。像我们市面上常见的摄像头-海康威视,他的桌面端管理软件就是Qt开发的。现在好多汽车制造商的车机系统也都是用Qt在做。

  4、国产化

        Qt在国产化方面是重中之重,军工、汽车、工业控制、大型医疗设备等,尤其是军工方面,随着我国军工国产化的逐渐推进,Qt必将会在此领域大放光彩,比如WPS是Qt开发的,已经占领国产操作系统领域大部分市场了。

四、Qt的缺点

1、Qt和UI布局设计真的很麻烦,不像delphi、C# winform或WPF,支持到控件级的上下左右布局,Qt的UI布局需要将容器先搭建好,再往容器中放控件(类似于先把衣柜打好,再往里放衣服),并且栅格化后,再加控件还需要打破现有布局格式才可以,总之很容易将界面弄乱。

2、Qt的控件效果设置也很不友好,有很多效果需要自己写qss样式来实现,但我觉得有利有弊,优点是灵活扩展多样化,缺点是自己会多写很多代码,并且要不断的尝试写完的qss是什么样的效果,达没达到要求。其实qss是个好东西,类似于web技术栈中的css,在以往的工作中,我发现好多重复的qss写法,希望大家以后在写程序时注意不要重复的写css样式,在最上层的容器中通过类,名称等可以控制全部或某一个控件的样式。

3、Qt原生的控件功能也不太完善,也不太漂亮,第三方的控件也比较少,所以做出来的东西要想漂亮,在UI上要花长时间来设计。但是你想在嵌入式、国产化、跨平台领域开发软件,也没有更好的工具了,首先还是Qt。

4、Qt的使用场景大多还是桌面端应用程序开发,有一定的局限性。

五、Qt的编译器-MinGW

1、Qt的安装程序主要分为windows、linux、mac的版本,分别在不同的平台运行。

2、Qt5.9以前的版本,windows版本又细分了一些版本,包括MinGW和MSVC。其中 MSVC 用的是 VS 编译器,同时还需要安装一些Visual C++的库,如果你的电脑中没有安装VS那就不要安装这个版本了,否则使用时编译器会有错误,编译程序会通不过。

3、Qt5.9以后的版本,把以前版本中的一些细分都集成到一个安装包中,可以看到安装包从以前的1.2G变为了2.3G。而具体的细分就放到了安装时自选了,比如之前的MinGW和MSVC等不同版本就可以在安装时选择,而windows版本就都集成到 qt-opensource-windows-x86-XXX 中。

4、windows系统下最常用编译器是MinGW 32位的。

《写在最前边》icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135550465

《一、QT的前世今生》icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135550566

《二、QT下载、安装及问题解决(windows系统)》icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135550949

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高并发场景系统设计的时候应该怎么考虑?

主要考虑三个方面,一个是架构,一个是容量,还有一个是调优。 架构方面要考虑的主要是架构拆分、加速和增加吞吐量技术。 架构拆分的常用技术比如:DDD四层架构、六边形架构、微内核架构,还有像k8s架构那种基于角色的拆分…

nmealib 库移植 - -编译报错不完全类型 error: field ‘st_atim’ has incomplete type

一、报错提示-不完全类型(has incomplete type) Compiling obj/main.o from main.c.. arm-linux-gcc -g -w -stdgnu99 -DLINUX -I./ -Inmealib/inc/ -c -o obj/main.o main.c In file included from /home/user/Desktop/nuc980-sdk/sdk/arm_linux_4.8/usr/include/sys/stat…

数据仓库(2)-认识数仓

1、数据仓库是什么 数据仓库 ,由数据仓库之父比尔恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,做…

高性能RPC框架解密

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

优雅草蜻蜓API大数据服务中心v1.0.4更新-加入蓝奏云直链解析·每日Bing·字数统计·今日油价·历史上的今天等接口

2024年1月13日优雅草蜻蜓API大数据服务中心v1.0.4更新-加入蓝奏云直链解析每日Bing字数统计今日油价历史上的今天等接口 优雅草api服务-大数据中心自12月29日推出以来截止2024年1月13日累计被调用次数为413次,共收录23个接口,截止前一日2024年1月12日当…

VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络

VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络 Debian 是一个完全自由的操作系统!Debian 有一个由普罗大众组成的社区!该文档适用于在VMware workstation平台安装最小化安装debian-12.1.0虚拟机。 1.安装准…

【动态规划】【矩阵快速幂】【滚动向量】C++算法552. 学生出勤记录 II

作者推荐 【动态规划】458:可怜的小猪 本题其它解法 【矩阵快速幂】封装类及测试用例及样例 预计2024年1月15(周一7:00)发布 涉及知识点 动态规划 矩阵快速幂 滚动向量 LeetCode552. 学生出勤记录 II 可以用字符串表示一个学生的出勤记录&#xf…

大创项目推荐 深度学习疲劳检测 驾驶行为检测 - 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 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习加…

1.2MATLAB数据类型和常用函数

MATLAB数据类型 数据类型表示范围整型 无符号整数8位无符号整数00000000~11111111 (0~-1)16位无符号整数32位无符号整数64位无符号整数带符号整数8位带符号整数10000000~01111111 (~)最左边的1表示符号负号16位带符号整数32位带符号整数64位带符号整数浮…

在centos系统安装mqtt

在CentOS系统上安装MQTT,通常意味着要安装一个MQTT代理(broker),比如Mosquitto。下面是在CentOS上安装Mosquitto的步骤: 添加EPEL仓库: 由于Mosquitto可能不在CentOS默认的Yum仓库中,你可能需要…

Vulnhub-Lampiao

一、信息收集 nmap扫描 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 1024 46:b1:99:60:7d:81:69:3c:ae:1f:c7:ff:c3:66:e3:10 (DSA) | 2048 f3:e8:88:f2:2d:d0:b2:54:0b:…

Center审计策略表安装和策略添加(事务)——(Linux/Windows版本)

本博客主要讲述Center的审计策略表安装和策略添加 使用事务添加 1、开启事务 my->StartTransaction(); 2、编写sql语句 //清除原来数据,防止数据污染my->Query("DROP TABLE IF EXISTS t_strategy");string sql "CREATE TABLE t_strategy (…

OpenCV-24双边滤波

一、概念 双边滤波对于图像的边缘信息能够更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 空间距离:指的是当前点与中心点的欧式距离。空间域的高斯函数及其数学形式为: 其中(xi,yi&…

电子学会C/C++编程等级考试2021年09月(四级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:最佳路径 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。你的任务就是求出最佳路径…

C程序训练:与输入有关的错误

在录入程序时有时稍不注意就可能录入错误的字符导致程序运行结果出现错误&#xff0c;下面举例说明。 下面程序的运行结果是错的&#xff0c;但程序又没有错&#xff0c;到底问题出现在哪呢&#xff1f; #include <stdio.h> int main() {FILE *fp;int i, k, n;fpfopen(…

【Linux】Linux 系统编程——cd 命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 “cd 命令&#xff0c;即 ‘change directory’ 的缩写&#xff0c;主要用于 Unix、Linux 和 macOS 等操作系统中&#xff0c;用于改变当前工作目录。该命令支持绝对路径和相对路径两种形式。若未指定…

肉类加工过程中的分子营养变化

谷禾健康 由于肉类和肉制品含有丰富的脂质和蛋白质&#xff0c;因此易于发生氧化反应。脂质氧化会产生一系列氧化衍生物&#xff0c;主要影响食物的颜色和风味&#xff0c;同时也会导致肌肉蛋白质的功能和稳定性丧失。同样&#xff0c;蛋白质容易被活性氧化物质(ROS)和氧化应激…

用ChatGPT写论文的重要指令

使用ChatGPT写论文&#xff0c;chatgpt3.5的普通版本与ChatGPTPLUS版本我都尝试过&#xff0c;这里我还是比较喜欢ChatGPTPLUS来写论文 快速订阅ChatGPTPLUS方法&#xff0c;0年费、0月费 具体步骤可参考 亲测&#xff0c;Chatgpt4.0充值&#xff08;虚拟卡充值&#xff09;-…

[Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)

上一节讲解了K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群),这里来看看K8s使用Helm部署mysql集群(主从数据库集群) 一.Helm 搭建mysql集群 1.安装mysql不使用persistence(无本地存储) 无本地存储:当重启的时候,数据库消失 (1).打开官网的应用中心 打开应用中…

PyTorch损失函数

一、损失函数是什么 损失函数&#xff1a;衡量模型输出与真实标签的差异 class _Loss(Module):def __init__(self, size_averageNone, reduceNone, reductionmean):"""Loss函数的基类&#xff0c;定义了一些通用的属性和方法。参数&#xff1a;- size_average…