跨平台的 C++ 应用和 UI 开发库 Qt

跨平台的 C++ 应用和 UI 开发库 Qt

LGPL\GPL\商业许可
C/C++ Perl SHELL 查看源码»
跨平台
2009-01-17

Qt 是一种更快,更智能的方式来为多个屏幕创建创新的设备、现代用户界面和应用程序。它是一个跨平台的C++应用程序开发框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发图形用户界面程序,也可用于开发非图形用户界面(比如命令行界面)程序。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

基本上,Qt 同 X11上的GTK、Motif、Openwin和Windows上的MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 支持更多的平台(包括WindowsGNU/LinuxMac OS XAndroidiOSWinCEUnix家族等),面向对象且模块化程度更高(Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单)。

丰富的API(Qt 包括多达 250 个以上的 C++ 类,还替供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能),支持 2D/3D 图形渲染支持 OpenGL、大量的开发文档、XML支持等。

Qt的特点

  • 优良的跨平台特性
  • 支持面向对象
  • 丰富的 API
  • 支持 2D/3D 图形渲染,支持 OpenGL
  • 大量的开发文档
  • XML 支持

我们所使用的 Qt,确切地说也就是它的 GUI 编程部分。C++ 的 GUI 编程同 Java 不同:GUI 并不是 C++ 标准的一部分。所以,如果使用 Java,那么你最好的选择就是 AWT/Swing,或者也可以使SWT/JFace,但是,C++ 的 GUI 编程给了你更多的选择:wxWidWget、GTK++ 以及 Qt。

Qt Creator

Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境,并确保首次接触Qt框架的开发人员能迅速上手和操作。即使不开发Qt应用程序,Qt Creator也是一个简单易用且功能强大的集成开发环境。Qt Creator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:

  • C++代码编辑器
  • 上下文感知帮助系统
  • 可视化调试器
  • 源代码管理
  • 项目和构建管理工具

Qt Linguist被称为Qt语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。 Qt Linguist工具从4.5开始可以支持Gettext的PO文件格式。

Qt 和智能手机

Qt 目前支持主流的 Android、iOS、WinPhone 等智能机操作系统。MeeGo 是基于 Qt 开发的操作系统,由于被诺基亚抛弃了, 只剩一代绝版诺基亚 N9 手机。诺基亚手机部门出售给微软之后,大部分诺基亚手机系统开发人员都被遣散了。

原来诺基亚的一部分人成立新的 Jolla(卓蓝)公司,发布了 MeeGo 的衍生版智能手机系统 Sailfish(旗鱼),相应的手机和平板也发布开卖了。另一拨人投靠了 Tizen(泰泽),Tizen 是英特尔和三星力推的智能手机系统,该系统整合了 Limo 和 MeeGo,因为 MeeGo 系统被诺基亚抛弃,英特尔其实是被出卖了,所以只能联合三星重造智能手机系统 Tizen。

目前基于 Tizen 的首款手机三星 Z1 在印度上市了。在 Tizen 阵营,国内有中兴、百度涉及了。 Qt 公司有专门针对移动开发的商业版本,20 欧元或 25 美元一个月。不做商业可以无视这个,用开源版本也是可以开发如 Android、iOS、WinPhone 应用的。

应用范围

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

Qt 是应用程序开发的一站式解决方案,有了 Qt,你就可以高枕无忧了!Qt 本身包含的模块也日益丰富, 一直有新模块和第三方模块加入进来。 大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。

下面的软件都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、谷歌地图、Photoshop Album 等。 Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有 Java 和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。总起来说,Qt 主要用于桌面程序开发和嵌入式开发。

加载中

Lars Knoll 为 Qt 首席维护者找到了接班人

Lars Knoll 是 Qt 公司的首席技术官和首席维护者,上个月他宣布从 Qt 离职,并辞去长期担任的 Qt 首席维护者职位。 经过 Qt 开发者的投票,新的维护者已经产生——Volker Hilsheimer 现在将成...

06/19 08:37

Qt 6.4 Beta 发布,新增 HTTP Server & 3D Physics 模块

Qt 6.4 发布了首个 Beta 版本,正式版预计于 9 月底推出。 与 Qt 6.3 相比,Qt 6.4 增加了三个模块,分别是: Qt HTTP Server Qt Quick 3D Physics Qt VNC Server Qt HTTP Server 和 Qt Qui...

06/19 07:43

22 年老将,Qt 公司 CTO 选择离职创业

Lars Knoll 是 Qt 公司的首席技术官和首席维护者,他也是 KHTML(Webkit 的前身) 的创建者,Lars Knoll 于今天在个人社交媒体发布公告,表示将离开 Qt 公司,之后他会加入一家创业公司开启新...

05/19 08:37

Qt 6.3 正式发布,添加 Qt 快速编译器、大量 Qt Quick 控件

Qt 6.3 发布了,与往常一样,该版本包含许多新功能以及大量 Bug 修复:自 Qt 6.2 发布以来修复了用户报告的总共 1750 个错误。下面摘录较为重要的新功能作介绍: Qt Quick 编译器 新的 Qt 快...

04/13 07:59

Qt 5.15 LTS 支持周期延长至 5 年

Qt Company 近日宣布他们将延长 Qt 5.15 LTS 长期支持版本的支持年限,即在原计划的 2023 年的基础上再延长两年,至 2025 年。 Qt 5.15 LTS 于 2020 年 5 月发布,按照 Qt 的原计划以及以往的...

04/02 08:24

Qt 2022 年路线图:继续增强 Qt for WebAssembly、发力汽车领域

Qt 6.2 于 2021 年 9 月发布,这是 Qt 6 系列的第一个长期支持 (LTS) 版本。现在,随着 Qt 6.3 的开发工作接近尾声,官方开始规划 Qt 的未来发展,并公布了 Qt 的 2022 路线图。 路线图中提到...

03/10 08:34

KDAB 推出 CXX-Qt ,为 Qt 提供安全的 Rust 语言绑定

专注于 KDE/Qt 的科技公司 KDAB 一直在努力改进 Rust 与 Qt 工具包的集成,近日他们推出了 CXX-Qt ,称该工具可为 Qt 提供安全的 Rust 语言绑定。 Rust 拥有 C/C++ 欠缺的内存安全性,且拥有...

03/04 08:37

商业化的 Qt 5.15.3 LTS 作为开源发布

Qt 公司发布了 Qt 5.15.3 LTS 的免费开源版本。2021 年,该公司宣布从 1 月 5 日起将 Qt 5.15 作为仅供商业化的 LTS,彼时现有的 Qt 5.15 分支将公开可见,但不会看到任何新补丁,只有付费账...

03/04 07:41

Qt 简化商业授权方案

Qt 公司正在积极探索改进其产品多样性和提升财务业绩的方法,除了最近的 Qt Digital Advertising 1.0(Qt 数字广告 1.0),近日它还宣布简化其商业授权方案。 Qt 现在已将其面向开发者的商业...

02/05 09:24

Qt 6.3 首个 Beta 测试版发布

Qt 6.3 首个 Beta 测试版已发布,正式版计划在 3 月底或者 4 月初推出。 Qt 6.3 新增的 Modules: Qt Language Server:实现了 Language Server Protocol Specification 和 JsonRpc 2.0 协议...

02/05 08:09

没有更多内容

加载失败,请刷新页面

4
回答
QT5.12.12下CTK框架无法使用(程序崩溃)

我在win10、QT5.12.12mingw下使用CTK框架进行插件开发。 参考帖子完成了CTK的编译安装。https://www.ebaina.com/...

Qt
04/12 10:43
10
回答
为什么QT可以兼用GPL和商业授权?
Monkey 的回答 2012/07/11 09:40
最佳答案
开源只是在软件发布和再开发上做了非常严格的限制,如果一个组织他拥有一套完全自主的代码,这个代码没有使用任何第三方的资源,那么他可以决定使用什么方式发布自己的代码,关键是这个代码要完全是你的。但是你不能把第三方的GPL代码放进来然后以低于GPL要求的方式进行发布,这就是违背了GPL的规则了。 对...
1
回答
智能疏散系统项目源码分享

说明: 1、项目源码基于QT5.5 Android SDK4.4 以上的开发环境 2、分享内容包括Android app信息中心项目源码、信息中心服务器源...

2016/11/25 16:37
1
回答
linux下生成堆栈信息文件

使用QT5开发的应用程序,在linux下环境如何生成类似于windows下dump文件的应用程序堆栈信息文件,以便在应用程序崩溃的时候排查崩溃原因。

2020/12/21 15:44
2
回答
Qt5 TextToSpeech

使用Qt5.9.6版本在linux系统上开发的应用程序,要实现文本转语音的功能,使用到了Qt的QTextToSpeech类,但是只能播放英文的,不能播放中...

2020/12/17 16:47
2
回答
QT应用程序在Linux系统中获取CapsLock按键状态

使用qt开发的应用程序,在linux系统中如何获取键盘上CapsLock按键的状态

Qt
2020/12/17 11:17
2
回答
QT读取xls过程中的问题

最近写的xls属性过滤器中,因为要读取大量的数据,用的是QT中的QAxobject来打开获取xls的各类指针: [align=center] QAxObj...

Qt
2016/07/13 17:26
2
回答
QT 频繁连接mysql数据库, 并且查询新增等操作, 会出现异常

日志名称: Application 来源: Application Error 日期: 2020/9/11 11:13:58 事件 ID: 1000 任务...

Qt
2020/09/29 21:02
2
回答
Qt5.11 静态编译生成的exe仍然有要依赖的DLL
yqs112358 的回答 2018/09/23 12:38
最佳答案
行 问题解决了 在mingw53_32_static\mkspecs\win32-g++\qmake.conf里加一行 QMAKE_LFLAGS = -static 就好了
1
回答
Qt label中设置文字

如果widget上面有5个Label,这个5个Label的objectName是分别为Label1、Label2、Label3、Label4、Label5...

Qt
2019/05/21 15:25

没有更多内容

加载失败,请刷新页面

暂无博客

返回顶部
顶部