本文字数:1660,阅读时长大约:15分钟

世界上的GUI库多如牛毛,有的开源,有的收费,有的可以做手机app开发,有的可以做桌面应用,有的只能用在某个系统,有的支持跨平台。基于不同的编程语言,人们又开发出不同的图形框架,比如Java有AWT、Swing;C#有WinForm和WPF;C++有MFC、QT、wxWidgets等。在C++的库中,QT凭借对跨平台的支持、简单易用、开发效率高等特性,成为最受欢迎的GUI库之一。

一、Qt是什么

引用百度百科一句话概括:“Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。”

Qt支持市场上常用的操作系统,并且开发出的图形界面非常优美。它是完全面向对象的,容易扩展,允许真正的组件编程。

二、平台支持

Qt不仅支持桌面系统,还支持手机和嵌入式的应用。桌面系统包括Windows、Unix、Linux、Mac,手机系统支持安卓和iOS等。和Java不同的是,它没有运行在额外的一层虚拟机上,而是针对不同的系统提供了相应的套件和编译器。Qt的跨平台支持使得它对不同平台的开发部署更为简单。

三、使用Qt开发的应用

使用Qt开发的应用很多,比较著名的有Linux的桌面环境KDE、WPS、Skype、VirtualBox虚拟机、谷歌地图、VLC播放器等等,其中KDE已经是Linux的主流桌面应用之一。

四、Qt的优点

使用Qt开发有很多优点,比如:

  • 跨平台支持:如果你希望程序运行在多个平台下,同时又降低开发成本,Qt是很好的选择

  • 简单易学:封装好,几行简单的代码就可以开发出简单的程序,不需要对操作系统底层有太多了解

  • 资料丰富:网络上有很多的资料,社区氛围好,可以得到很多帮助

  • 界面漂亮:Qt很容易开发出比较炫酷的效果,而MFC、wxWidgets等就比较麻烦

  • 独立安装:不像Java需要安装虚拟机,C#需要.net,Qt会编译成本地代码,不需要额外库的支持

因为Qt的种种优势,它在市场上的份额越来越高,得到很多公司的青睐。下面列举了猎聘上一些Qt工程师的职位,月薪基本上在2万-3万之间。

五、Qt的发展史与版本

Qt几经辗转,被很多公司收购过,换了很多东家:

  • 1991年由挪威的一家计算机公司Trolltech(奇趣科技)开发

  • 1996年进入商业领域,成为Linux KDE的基础

  • 2008年奇趣科技被芬兰巨头诺基亚收购

  • 2012年诺基亚濒临破产,Qt出售给了芬兰的一家IT公司Digia

Qt的版本:

  • Qt 1 - 3都是由奇趣科技开发的

  • 诺基亚开发了Qt 4版本

  • Digia开发了Qt 5,但是Qt 5对 Qt 4不兼容

另外Qt有商业版和免费版。两者的代码都是一致的,但商业版可以得到售后服务,比如培训和技术支持。免费版需要遵从LGPL协议,简单说,你需要开放所有使用了LGPL协议的代码,所以使用免费版Qt进行商业开发的同学要注意商业纠纷的风险。

六、Qt的下载与安装

(1)下载

Qt有在线安装包和离线安装包。在线安装包的使用体验不是很好,经常会卡顿在99%的进度不能继续,所以推荐大家使用离线安装包。安装包的下载可以使用以下两个网站:

http://www.qtcn.org/bbs/read-htm-tid-1075.html

https://www.qt.io/offline-installerst

比如下载Windows下的Qt 5.14的离线安装包可以选择下面这个链接:

(2)安装

下载好后,前面基本一直点击下一步就可以了:

这一步要注册Qt账户,需要一个邮箱地址,可以按提示操作

指定安装路径

下面需要选择套件,这些套件都包含专属的编译器。

  • MSVC是Desktop Qt MSVC的套件,需要安装Visual Studio相对应的版本

  • MinGW是Desktop Qt MinGW的套件。MinGW是Minimalist GNU for Windows的缩写,是在Windows平台上使用的GNU工具集导入库的集合,这个集合包括了C编译器gcc,C++编译器g++,和调试器gdb等工具。如果不使用Visual Studio,可以选择这个套件

  • UWP是针对Win 10以后UWP程序的套件

  • Android,如果需要开发安卓app,需要勾选这个套件

  • Sources可以下载Qt的源代码

  • Qt的其他组件,比如Qt Charts、Qt Quick 3D等,可以根据需要选择,注意括号里写着(Deprecated)的套件是为了兼容老版本,如果是开发新程序不用选择

  • Developer and Desinger Tools里面Qt Creator是一定要选的,如果使用Qt Creator开发,MinGW也要勾选上

接下来都点击下一步就可以了

接下来开始安装

安装成功

七、总结

Qt有着良好的跨平台支持、界面优美、简单易用、学习资料丰富等优点,和其他的GUI框架相比受到开发者们的广泛欢迎,因此想要从事图形界面开发的同学可以考虑学习Qt。

推荐阅读:

Linux快速搭建C/C++开发环境

一篇文章快速搞懂什么是GitHub

虚拟机安装 Linux 最完整攻略

Vi 和 Vim 的使用

获取知识干货、增加面试经验、了解职场人生

欢迎关注微信公众号

C++最好的图形库是什么?相关推荐

  1. nvGraph-NVIDIA图形库

    nvGraph-NVIDIA图形库 数据分析是高性能计算的不断增长的应用.许多高级数据分析问题可以称为图形问题.反过来,当今许多常见的图形问题也可以称为稀疏线性代数.这是nvGraph的动机,它利用G ...

  2. easy-x库graphics.h图形库安装

    easy-x库graphics.h图形库安装 graphics.h就是C++下easy-x库的一个图形库,还蛮好玩的,你想用vc6.0还是VS都是需要自己安装这个库的,接下来就来看着怎么安装吧! 一. ...

  3. 开源图形库 FreeImage

    一个自由.开源的图形库--FreeImage (支持位图构件―例 如调色板和数据位―的便易访问:将位图从一种位深度转换到另一种位深度:当有多幅位图页―例如TIFF―时访问位图的不同页:基本的位图处理, ...

  4. WebKit、Gecko使用图形库

    2008年11月30日 星期日 上午 01:20 阅读了之后,觉得作为浏览器内核WebKit.Gecko,为了能高效美观的显示页面的内容,选择适当的图形库非常重要.如果图形库选择不当,往往会导致页面上 ...

  5. 强大的矢量图形库:Raphael JS 中文帮助文档及教程

    Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库.它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出 ...

  6. python编程图_Python编程图形库之Pillow使用方法讲解

    PIL vs Pillow PIL: Python Imaging Library,是python的图像处理库.由于PIL不兼容setuptools,再加上更新缓慢等因素,Alex Clark等一些社 ...

  7. ege函数库_EGE图形库|EGE图形库下载v12.11 最新版 附使用教程 - 欧普软件下载

    EGE图形库是基于windows系统的简易绘图库,由GDI编写的BGI兼容库,完全可以TC的BGI库而存在,支持VC6, VC2008, VC2010, C-Free等IDE,有需要的朋友可以下载! ...

  8. c语言太极图编程语言,利用C语言的Cairo图形库绘制太极图实例教程.pdf

    利利用用C语语言言的的Cairo图图形形库库绘绘制制太太极极图图实实例例教教程程 前前言言 可能许多人对直接用C语言绘图仍然停留在T urbo C 的graphics.h年 ,或许也有教育老化的原因, ...

  9. C语言利用Cairo图形库绘制太极图

    许多人对直接用C语言绘图仍然停留在Turbo C的graphics.h年代,或许也有教育老化的原因,毕竟曾经的经典早已成往事,与其想尽各种办法寻找与其兼容的图形库,不如顺势拥抱灿烂的明天.Cario( ...

  10. python turtle库画图案-python之绘制图形库turtle(转)

    关于绘制图形库turtle#画布上,默认有一个坐标原点为画布中心的坐标轴(0,0),默认"standard"模式坐标原点上有一只面朝x轴正方向小乌龟一:海龟箭头Turtle相关方法 ...

最新文章

  1. 苹果挂端口方法_苹果新系统遭吐槽!SSH 默认规则被破坏,程序员无法登录 Web 服务器......
  2. vmware克隆虚拟机
  3. LCA+差分【p4427】[BJOI2018]求和
  4. taskspawn函数 linux,vxworks的启动任务taskSpawn
  5. python中的累乘积_Python中的连续元素最大乘积
  6. [译]CSV 注入:被人低估的巨大风险
  7. cpu要和gpu搭配吗_搞懂GPU为什么比CPU“快”
  8. 看雪论坛论坛小测试的答案
  9. 读书笔记——《解析卷积神经网络 ——深度学习实践手册(魏秀参)》
  10. esp-idf的内存管理——内存管理组件的初始化
  11. easyui datagrid 多一列
  12. 用excel/WPS制作酷炫数据可视化大屏(附模板)
  13. eplan 电箱布局_EPLAN电气图实例--控制柜(1)
  14. 在毕业设计论文Word中交叉引用参考文献
  15. 在面试软件测试工作时如何巧妙提出加薪要求,你确定不看嘛?
  16. BIO和NIO消耗的cpu和内存比较
  17. 最大熵方法求概率密度函数
  18. 基于iOS/Mac平台实现H.265硬编解码
  19. 您应该知道的重要外汇交易术语!
  20. 概率图模型学习笔记:HMM、MEMM、CRF

热门文章

  1. 初始化 Hilbert 矩阵
  2. 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
  3. AB罗克韦尔PLC 、变频器、电源,软启武汉峥嵘
  4. eplan怎么导出部件汇总表_【整理分享】EPLAN初学资料、EPLAN表格和符号库汇总
  5. TFS2010安装与管理
  6. CRC循环冗余校验码
  7. 微信小程序开发:绑定手机号获取验证码功能
  8. 支持python的云虚拟主机_云虚拟主机运行python(能运行python的主机)
  9. qq同步android 2.2,支持手机号注册!Android QQ同步助手2.1发布
  10. Hcse 交换知识点-2