• 【无标题】


    1 为什么要学 Qt

    Qt 是一个跨平台的 C++ 图形用户界面应用程序框架

    Qt 为应用程序开发者提供建立艺术级图形界面所需的所有功能

    Qt 是完全面向对象的,很容易扩展,并且允许真正的组件编程

    1.1 Qt 的发展史

    在讲解学习 Qt 的必要性之前, 先来了解下 Qt 的发展历史:

    • 1991年,Qt 最早由 奇趣科技(TrollTech)开发
    • 1996年,进入商业领域,它也是目前流行的 Linux 桌面环境 KDE 的基础
    • 2008年,奇趣科技被诺基亚公司收购,Qt 成为诺基亚旗下的编程语言
    • 2012年,Qt 又被 Digia 公司收购
    • 2014年4月,跨平台的集成开发环境 Qt Creator 3.1.0 发布,同年5月20日配发了 Qt5.3 正式版,至此 Qt 实现了对 iOS、Android、WP 等各平台的全面支持
    • 2020年,Qt 团队宣布 6.0 版本发布。
    • 当前 Qt 最新版本为 Qt 6.3

    1.2 Qt 的优势

    (1)跨平台

    用 Qt 编写的程序,可以直接编译运行到不同的平台:windows、linux、mac

    主流的应用级软件肯定是要跑在这三个平台的,用 mfc、c# 做的话, 就只能跑在 windows 上,无法轻易移植到 linux , mac 上去

    (2)知名软件都用 Qt

    很多知名软件都是 Qt 开发的

    • 谷歌地图

      Google Earth,是一款谷歌公司开发的虚拟地球软件,通过它可以浏览全球各地的高清晰度卫星图片

    • Wireshark

      一款免费的网络抓包分析软件,它的功能非常强大对于开发者而言,可以用它通过抓包分析,来解决开发过程中的很多问题。

    • VirtualBox

      开源的虚拟机软件,可以在一台电脑上同时运行两个操作系统

      典型的用法就是:宿主机安装 windows 系统,然后通过 virtualbox,再安装一个 linux 系统,这样就可以同时运行 windows 和 linux 两个系统,并且在两个系统之间可以很方便地共享文件

      virtualbox 对标的是 Vmware,VMware 也是一个虚拟机软件,不过它是收费的

    • VLC

      这是一个开源的多媒体播放器

      它体积小巧、功能强大,做音视频开发的小伙伴应该是很熟悉它的

    • WPS Office

      金山公司(Kingsoft)出品的国产办公软件套装,完全兼容微软的 Office 系列

    • YY 语音

      国内第一大游戏语音通讯平台,可以进行在线多人语音聊天和语音会议

    百度查一下还有很多,可以不学 mfc ,但是 Qt 一定要学

    (3)代码层次更加清晰

    用 mfc 的话, 系统自动生成的代码和自己写的代码,是杂糅在一起的,比如,当界面的控件删除之后,代码就报错,需要自己手动去修改源码

    而在 Qt 中,系统自动生成的代码和自己写的代码是完全隔离开的

    (4)界面美观

    Qt 支持 QSS, 类似于 web 端的 css, 修改控件的样式, 很简单。

    因此,用 Qt 做出来的界面是非常美观的。

    (5)2D/3D开发

    支持2D/3D图形渲染,支持 OpenGL,如果做三维应用,首选推荐 Qt

    (6)丰富的API、完善的开发文档

    Qt 包括多达 250 个以上的 C++ 类,并且提供了非常完善的文档,并且附带有很多例子,对开发者非常友好

    (7)嵌入式开发

    嵌入式开发,就是指的嵌入式 linux 开发, Qt 是做嵌入式 linux 界面开发最好的,没有之一

    在后续的课程中,我也会推出 《嵌入式 QT 开发》的教程,会支持正点原子、野火、韦东山的系列的开发板

    (8)最好会写界面

    如果学过了 C++,但是连一个简单的界面做不出来,有点说不过去

    当然你可以最强的是用 C++ 做后台,但是界面还是要掌握的,因为通常工作中会写一个带有界面的简单的测试工具,此时 Qt 就派上用场了

    (9)最重要一点 - 工资待遇好

    在这里插入图片描述

  • 相关阅读:
    单元测试方法-cmockery实践
    MySQL查询优化之order by 与 group by优化
    Google Earth Engine APP——在线计算23类植被指数app代码
    gojieba在linux系统编译及运行问题总结
    Android 使用Linphone SDK开发SIP客户端
    Maven的安装与配置
    程序员的护城河:从代码到智慧的跨越
    【Kubernetes 系列】一文带你吃透 K8S 应用pod结点
    面试突击:@Autowired 和 @Resource 有什么区别?你学会了吗?
    Rust入门教程(四):常用的集合
  • 原文地址:https://blog.csdn.net/yinshunjun123/article/details/126092893