Qt学习之路 (一)概述

article/2025/10/25 6:55:05

Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。

Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要

Qt 还存在 Python、Ruby、Perl 等脚本语言的绑定, 也就是说可以使用脚本语言开发基于 Qt 的程序。开源社区就是这样,好东西就会被派生扩展,到处使用, 越来越壮大。

Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone, 嵌入式系统 QNX、VxWorks 等等。

在这里插入图片描述
Qt 可以做什么?
Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。

Qt 是应用程序开发的一站式解决方案,有了 Qt,你就可以高枕无忧了!Qt 本身包含的模块也日益丰富, 一直有新模块和第三方模块加入进来。

大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。

1997年,Qt 被用来开发 Linux 桌面环境 KDE,大获成功,使 Qt 成为 Linux 环境下开发 C++ GUI 程序的事实标准。

下面的程序都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 等。

Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有 Java 和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。

总起来说,Qt 主要用于桌面程序开发和嵌入式开发。

Qt 的辛酸史
说到 Qt 的发展史,那真是一波三折,几经卖身。

Qt 最早是 1991 年由挪威的 Eirik Chambe-Eng 和 Haavard Nord 开发的, 他们随后于 1994 年 3 月 4 号正式成立奇趣科技公司(Trolltech)。Qt 原本是商业授权的跨平台开发库, 在 2000 年奇趣科技公司为开源社区发布了遵循 GPL(GNU General Public License)许可证的开源版本。

在 2008 年,诺基亚公司收购了奇趣科技公司,并增加了 LGPL(GNU Lesser General Public License)的授权模式。诺基亚联合英特尔利用 Qt 开发了全新的智能手机系统 MeeGo,可惜遭遇了微软木马屠城,诺基亚被迫放弃了 MeeGo, 而 Qt 商业授权业务也于 2011 年 3 月出售给了芬兰 IT 服务公司 Digia。

微软收购诺基亚
在这里插入图片描述

当然好消息是 Digia 于 2014 年 9 月宣布成立 Qt Company 全资子公司,独立运营 Qt 商业授权业务。目前 Qt 公司大力推广移动平台开发和商业应用, 总的来说 Qt 历经曲折,现在算是步入正轨了。

经过 20 多年的发展,Qt 已经成为最优秀的跨平台开发框架之一,在各行各业的项目开发中得到广泛应用。许多大型软件都是用 Qt 开发的,如 Autodesk Maya、Google Earth、Skype、WPS Office等。

Qt 和 KDE
之前提到 Qt 原本是商业授权软件,是怎么开源的呢?这就涉及 Qt 和 KDE 的纠葛了。

KDE 是 Linux 操作系统的桌面环境,与 GNOME 桌面是类似的,作为开源桌面它们竞争的情况更为多见,有兴趣的读者请猛击《Linux桌面环境》了解更多。

KDE 是采用 GPL 许可证发布的开源软件,而最初 Qt 是商业授权的,存在商业侵权风险,GNOME 则是基于开源 GTK 库的,没有什么商业风险,这一度是 GNOME 优越于 KDE 的特性。

由于 Qt 的商业授权,KDE 社区一度混乱纠结,与此同时 GNOME 则如火如荼发展起来了。 KDE 毕竟算是亲儿子,被另一波人欺负,奇趣科技公司当然看不下去了,最后是奇趣科技公司为了赢得开发者的支持,为 Qt 增加了 GPL 的开源授权, 对于开源社区而言,遵循 GPL 使用 Qt 就不需要付费,这为 KDE 解决了燃眉之急。

之后 KDE 桌面和 GNOME 都发展壮大起来,都做得越来越好了。
GPL 和 LGPL
除了商业授权,目前 Qt 的开源授权有两种,一种是 GPL 授权,另一种是 LGPL 授权(诺基亚收购后新增)。

对这两种开源授权,简单来说,使用 GPL 版本的软件一定还是 GPL 的开源软件,无论是使用了 Qt 的程序代码还是修改了 Qt 库代码,都必须按照 GPL 来发布,这是 GPL 的传染性。

GPL 是什么都要开源,这对商业软件应用是不利的,所以诺基亚增加了 LGPL 授权 (第一个 L 可以叫 Lesser 宽松版或 Library 开发库版)。使用 LGPL 授权就可以利用 Qt 官方动态链接库,而不必开放商业代码。只要不修改和定制 Qt 库,仅使用 Qt 官方发布的动态链接库就可以不开源,这是商业友好的授权模式。

其实只要不是做商业,就不太需要关注用什么授权,以 GPL 授权发布程序代码就可以了。


http://chatgpt.dhexx.cn/article/vKSBNE3n.shtml

相关文章

QT学习之路

文章目录 一、QT简单介绍二、.pro文件介绍三、 命名规范和常用快捷键以及QPushButton简单使用登录窗口布局控件--按钮组其他常用控件介绍自定义控件封装Qt中的鼠标事件定时器一定时器二event事件分发器事件过滤器绘图事件绘图高级设置绘图设备QFile文件读写操作QFileInfo文件信…

在自己电脑上搭建一个FTP服务器

在自己电脑上搭建一个FTP服务器 因为项目需要,第一次搭建FTP,也是在博客上找的经验,写这篇博客,主要是想记录一下,留个笔记,以防后面需要。 本文是在不借助工具的情况下在自己电脑上搭建FTP服务器。我的是w…

搭建自己本地的IIS服务器

在工作中有时候不想买服务器,这个时候就需要将自己的电脑搭建成服务器。如何搭建呢?其实很简单,以下几步教你搞定。 1. 打开控制面板(window图标直接输入控制面板(control)), 找到程序->程序与功能->启用或关闭Windows功能。 2.找到“…

阿里云服务器如何搭建ip

很多客户的业务要求需要多个ip 来完成业务要求。大家认为的每个服务器只有一个公网ip,那么如何实现多个ip呢?怎样来部署呢? 根据自己需求选择服务器,选购的过程中需要注意的是:实例的网络类型必须是专有网络&#xff…

搭建MQTT服务器

搭建MQTT服务器 一、准备工作二、版本选择三、安装四、遇到的一些问题: 一、准备工作 1.查看(Ubuntu)系统版本: 使用命令:lsb_release -a 。 2、查看服务器的内核(CPU架构): 我使…

域控服务器搭建

系统:windows server 2012 R2 一、 更改为固定IP 二、 修改计算机名称(修改完成后重启) 三、 打开服务器管理器,找到右上角【管理】-【添加角色和功能】 四、 这里直接点击下一步 五、 默认选择第一个,然后点击下一…

Nginx搭建服务器

第一步:下载安装包 Nginx下载地址 第二步:解压到合适的位置,修改配置 我这边是解压到D:\Program Files (x86)\nginx-1.21.6目录下,然后打开conf文件夹找到nginx.conf配置文件,用Notepad打开 修改下面几个配置即可搭…

搭建自己的服务器代理 yyds

一.购买需要搭建的服务器 为了方便自己搭建使用,直接来到阿里云购买轻量级服务器 点击跳转后,当前界面为服务器配置界面,对于第一次搭建建议购买24元/月的就可以,其次是区域必须为香港只有香港才可以连接到外网,镜像…

搭建文件服务器

文件服务器&#xff0c;又称档案伺务器&#xff0c;是指在计算机网络环境中&#xff0c;所有用户都可以访问的文件存储设备。 下面是搭建文件服务器的步骤&#xff1a; 1.打开Windows服务管理器<仪表盘&#xff0c;选择“添加角色和功能” 2.到这里选择文件服务器相应功能…

家庭宽带搭建服务器

家庭宽带搭建服务器 一、获得公网ip 如果是电信或者联通宽带可以打客服申请公网在线&#xff0c;绝大部分都能通过&#xff0c;理由可以说装监控或者玩游戏。移动宽带目前没用过就不讨论了。 **注意&#xff0c;这里的公网ip是动态公网ip&#xff0c;就是说会不定时更换。**…

搭建国外服务器

搭建国外服务器 学习内容&#xff1a; Namesoil 域名购买配置Cloudflare内容分发购买服务器掌握循环语句 Namesoil 域名购买 网站连接&#xff1a;https://www.namesilo.com/ 登录 搜索自己想要的网址名称 加入购物车 前往购买 支付完成后配置域名 查看域名 对域名进行DNS设…

虚拟手游服务器,自己搭建手机游戏服务器

自己搭建手机游戏服务器 内容精选 换一换 本文介绍了云手机CPH产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验。 部署游戏应用前,您需要准备硬件以及华为云的环境,主要包括以下内容:硬件环境:您需要准备一台带有显卡的Windows机器,硬盘至少20…

搭建自己的云服务器

搭建云服务器 本人学生一位&#xff0c;经常需要使用服务器进行软件测试&#xff0c;每次都需要搭建虚拟机很麻烦&#xff0c;所以找了一台云服务器&#xff0c;abeiyun云服务器 有了服务器后就可以搭建自己的云服务器了 安装系统 本人采用的是Ubuntu16.04版本的系统&#x…

Linux搭建服务器

文章目录 Linux搭建服务器1.基础环境配置1.1配置centos71.2安装xshall1.3安装xftp7 2.配置jdk 1.8第一步 卸载系统自带的OpenJDK以及相关的java文件第二步 下载最新稳定JDK第三步 解压JDK第四步 配置JDK环境变量第五步 让刚刚设置的环境变量生效并检查是否安装成功 3.配置tomca…

Git服务器搭建简明教程

1前言 本文详解在Ubantu 16下搭建Git服务器&#xff0c;力求让读者知其所以然&#xff0c;仅需安装Git和ssh&#xff0c;而无需其他软件。 2服务器搭建 在真实服务器或虚拟机里操作均可。另外&#xff0c;如果用VMware Workstation 16 Player的话&#xff0c;默认不用配置虚拟…

自己搭建微信小程序服务器,微信小程序搭建自己的Https服务器

一、注册微信小程序 进入微信公众平台,使用邮箱账号,选择注册小程序账号。一个邮箱只能注册一个类型的微信账号(订阅号、服务号、小程序)。 二、搭建Https服务器 1、域名注册 1.1、登录腾讯云平台,并注册账号。 1.2、选择“云产品”—”域名服务“—”域名管理" 1.3、选…

文件服务器搭建手机,自己搭建手机云服务器

自己搭建手机云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推荐使用)使用远程桌面连接…

服务器搭建免流系统,国内服务器搭建免流

国内服务器搭建免流 内容精选 换一换 PHPWind(简称:PW)是一个基于PHP和MySQL的开源社区程序,是国内较受欢迎的论坛之一。轻架构,高效易开发,使用户可快速搭建并轻松管理。本文档指导用户使用华为云市场镜像“PHPWind 论坛社区系统(LAMP)”部署PHPWind论坛系统。弹性云服务器…

新手自己搭建服务器步骤

1.连接服务器 2. 修改实例的密码 3.配置安全组规则 4.安装finalShell远程终端工具执行以下代码 由于这是我们在此会话中与apt打包系统的第一次交互&#xff0c;因此我们将更新本地包索引&#xff0c;以便我们可以访问最新的包清单。 之后&#xff0c;我们可以安装nginx &…

如何搭建一台属于自己的服务器

对于新手小白来说&#xff0c;我推荐使用大厂们的服务器&#xff0c;比如阿里云&#xff0c;腾讯云等&#xff0c;这种不仅有强大的大厂背景支持&#xff0c;且不用担心维护&#xff0c;界面功能友好完善&#xff0c;非常适合新手小白 (๑•̀ㅂ•́)و✧ 我使用的是腾讯云&…