QT入门学习(一):什么是QT?

QT 是什么?

QT是一个跨平台C++图形用户界面应用程序开发框架。它不仅可以开发GUI程序,也可以开发非GUI程序。我们通常使用QT开发GUI程序。

它可以开发Windows、Linux、Mac平台的应用程序。也可以开发移动端应用程序以及嵌入式程序。

QT 模块

QT 有模块的概念,简单来说就是把功能飞分块。比如你收拾屋子,会把衣服都放在衣柜中,鞋子摆在鞋架上,厨房用具会摆在厨房中。

QT 可以划分为两个大模块:Essentials Modules(基础模块)和Add-on Modules(扩展模块),基础模块在所有平台都可以用,而扩展模块看平台和需求。基础模块就好比房子里面的生活必需品,比如床、枕头。而扩展模块比如跑步机,假如房间过小或不适合,就放不下扩展模块。

QT基础模块又可以划分以下几个模块:

  1. Qt Core,提供核心的非GUI功能,所有模块都需要这个模块。

  2. Qt Gui,提供GUI基本功能

  3. Qt Multimedia,提供视频、音频、收音机以及摄像头等功能,需要在pro文件中添加QT += multimedia

  4. Qt Network,提供跨平台的网络功能,pro文件中添加QT += network

  5. Qt Qml,提供供QML使用的C++API,可以通过引入,pro文件中添加 QT += qml

  6. Qt Quick,允许在QT程序中嵌入Qt Quick(适用于移动平台开发),可以通过引入,pro文件添加 QT += quick

  7. Qt SQL,使用SQL访问数据库,pro文件中添加 QT += sql

  8. Qt Test,提供QT程序的单元测试功能,可以通过引入,pro文件中添加 QT += testlib

  9. Qt Webkit,基于WebKit2的实现以及一套全新的QML API

QT扩展模块可以划分为以下几个模块:

  1. Qt 3D,提供声明式语法,在QT程序中可以嵌入3D图像

  2. Qt Bluetooth,提供访问蓝牙无线设备的C++和QML API

  3. Qt Contacts,提供访问地址簿或者联系人数据库的C++和QML API

  4. Qt Concurrent,封装了底层线程技术的类库,方便开发多线程

  5. Qt D-Bus,仅供Unix平台使用的库

  6. Qt Graphical Effects,用于实现图像特效

  7. Qt Image Formats,支持图片格式的一系列插件

  8. Qt JS Backend,仅供Qt QML模块内部使用,开发者无需调用

  9. Qt Location,提供定位机制、地图和导航技术、位置搜索等功能的QML和C++ API

  10. Qt Organizer,使用QML和C++ API访问组织事件

  11. Qt Print Support,提供对打印功能的支持

  12. Qt Publish and Subscribe,为应用程序提供对项目值的读取、导航、订阅等功能

  13. Qt Sensors,提供访问各类传感器的QML和C++接口

  14. Qt Service Framework,提供客户端发现其他设备的服务

  15. Qt SVG,提供渲染和创建SVG文件的功能

  16. QT System Info,提供一套API,用于发现系统相关信息,比如电池使用量、锁屏等

  17. Qt Tools,提供了QT开发的方便工具,包括QT Designer、QT Help等

  18. Qt Versit,提供了对Versit API的支持

  19. Qt Wayland,仅用于Linux平台,用于替代QWS

  20. Qt WebKit,从QT4移植来的基于WebKit1 和QWidgets 的API

  21. Qt Widgets,使用C++扩展的QT GUI模块,提供了一些界面组件

QT的模块很多,我们只需要关注Qt CoreQt GuiQt QmlQt NetworkQt QuickQt Quick、Qt Widgets即可。

其他模块根据自己需求添加

QT 目录说明

我本地安装的是QT 5.15.2,看下QT的目录:

再看下安装套件里面的目录:

再看下mingw81_32目录:

QT的开发工具

  1. QT Creator工具,我们创建项目写代码在这个工具上面写。如果有喜欢用VS的,可以下载QT插件在VS上面写代码
  2. Qt Assistant,也就是QT 助手,一个在线文档工具,支持搜索
  3. Qt Linguist,国际化使用的工具

结尾

大概介绍了下QT,只需要有点印象就可以,下一篇会介绍QT如何实现国际化的。

评论