【C/C++基础进阶系列】QT -- 搭建 QT 安装环境

【C/C++基础进阶系列】QT -- 搭建 QT 安装环境

【0】QT 简介

Qt 是由 Qt Company 开发的跨平台 C++ 图形用户界面应用程序开发框架,既可以开发 GUI 程序,也可用于开发非 GUI 程序,比如控制台工具和服务器,Qt 可以与 OpenCV,ffmpeg,OpenGL 等开源库结合使用;主要的特点在于其跨平台的特性,同时可以用于嵌入式开发;内部带有很多种 API,数据库操作,网络编程,多线程,进程,三维 GUI 动画等;

Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分;Essentials Modules 是基础模块,适用于所有平台;Add-on Modules 是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平台之上可以酌情引入;

Qt 基础模块组成

  • Qt Core,提供核心的非 GUI 功能,所有模块都依赖该模块,该模块的类包括了动画框架、定时器、各个容器类、时间日期类、事件、IO、JSON、插件机制、智能指针、图形(矩形、路径等)、线程、XML 等;所有这些类都可以通过头文件引入;
  • Qt Gui,提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等;这些类一般由 Qt 用户界面类内部使用,也可以用于访问底层的 OpenGL ES 图像 API;Qt Gui 模块提供的是所有图形用户界面程序都需要的通用功能;
  • Qt Multimedia,提供视频、音频、收音机以及摄像头等功能;这些类可以通过 < QtMultimedia > 引入,并且需要在 pro 文件中添加 QT += multimedia;
  • Qt Network,提供跨平台的网络功能,这些类可以通过 < QtNetwork > 引入,并且需要在 pro 文件中添加 QT += network;
  • Qt Qml,提供供 QML(一种脚本语言,也提供 JavaScript 的交互机制)使用的 C++ API;这些类可以通过 < QtQml > 引入,并且需要在 pro 文件中添加 QT += qml;
  • Qt Quick,允许在 Qt/C++ 程序中嵌入 Qt Quick(一种基于 Qt 的高度动画的用户界面,适合于移动平台开发),这些类可以通过 < QtQuick > 引入, 而且需要在 pro 文件中添加 QT+= quick;
  • Qt SQL,允许使用 SQL 访问数据库,这些类可以通过 < QtSQL > 引入,并且需要在 pro 文件中添加 QT += sql;
  • Qt Test,提供 Qt 程序的单元测试功能,这些类可以通过 < QtTest > 引入,并且需要在 pro 文件中添加 QT += testlib;
  • Qt Webkit,基于 WebKit2 的实现以及一套全新的 QML API;

Qt 扩展模块组成

  • Qt 3D,提供声明式语法,在 Qt 程序中可以简单地嵌入 3D 图像,Qt 3D 为 Qt Quick 添加了 3D 内容渲染;Qt 3D 提供了 QML 和 C++ 两套 API, 用于开发 3D 程序;
  • Qt Bluetooth,提供用于访问蓝牙无线设备的 C++ 和 QML API;
  • Qt Contacts,用于访问地址簿或者联系人数据库的 C++ 和 QML API;
  • Qt Concurrent,封装了底层线程技术的类库,方便开发多线程程序;
  • Qt D-Bus,这是一个仅供 Unix 平台使用的类库, 用于利用 D-Bus 协议进行进程间交互;
  • Qt Graphical Effects,提供一系列用于实现图像特效的类,比如模糊、锐化等;
  • Qt Image Formats,支持图片格式的一系列插件,包括 TIFF、MNG、TGA 和 WBMP;
  • Qt JS Backend,该模块没有公开的 API,是 V8 JavaScript 引擎的一个移植;该模块仅供 QtQml 模块内部使用;
  • Qt Location,提供定位机制、地图和导航技术、位置搜索等功能的 QML 和 C++ API;
  • Qt OpenGL,方便在 Qt 应用程序中使用 OpenGL;该模块仅仅为了程序从 Qt 4 移植到 Qt 5 的方便才保留下来,若需要在新的 Qt 5 程序中使用 OpenGL 相关技术, 需要使用的是 QtGui 模块中的 QOpenGL;
  • Qt Organizer,使用 QML 和 C++ API 访问组织事件( organizer event),organizer API 是 Personal Information Management API 的一部分, 用于访问 Calendar 信息;通过 Organizer API 可以实现,从日历数据库访问日历时间、导入 iCalendar 事件或者将自己的事件导出到 iCalendar;
  • Qt Print Support,提供对打印功能的支持;
  • Qt Publish and Subscribe,为应用程序提供对项目值的读取、导航、订阅等的功能;
  • Qt Quick 1,从 Qt 4 移植过来的 QtDeclarative 模块,用于提供与 Qt 4 的兼容;若需要开发新的程序,需要使用 QtQuick 模块;
  • Qt Script,提供脚本化机制,这也是为提供与 Qt 4 的兼容性,若使用脚本化支持,请使用 QtQml 模块的 QJS* 类;
  • Qt Script Tools,为使用了 Qt Script 模块的应用程序提供的额外的组件;
  • Qt Sensors,提供访问各类传感器的 QML 和 C++ 接口;
  • Qt Service Framework,提供客户端发现其他设备的服务;Qt Service Framework 为在不同平台上发现、实现和访问服务定义了一套统一的机制;
  • Qt SVG,提供渲染和创建 SVG 文件的功能;
  • Qt System Info,提供一套 API,用于发现系统相关的信息,比如电池使用量、锁屏、硬件特性等;
  • Qt Tools,提供了 Qt 开发的方便工具,包括 Qt CLucene、Qt Designer、Qt Help 以及 Qt UI Tools;
  • Qt Versit,提供了对 Versit API 的支持;Versit API 是 Personal Information Management API 的一部分,用于 QContacts 和 vCard 以及 QOrganizerItems 和 iCalendar 之间的相互转换;
  • Qt Wayland,仅用于 Linux 平台,用于替代 QWS,包括 Qt Compositor AP(I server)和 Wayland 平台插件(clients);
  • Qt WebKit,从 Qt 4 移植来的基于 WebKit1 和 QWidget 的 API;
  • Qt Widgets,使用 C++ 扩展的 Qt Gui 模块,提供了一些界面组件,比如按钮、单选框等;
  • Qt XML,SAX 和 DOM 的 C++ 实现;该模块已经废除,请使用 QXmlStreamReader/Writer;

【1】QT 下载与安装

QT 下载地址,Index of /qt/archive/qt/5.14/5.14.2/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

注册 QT 账号,Qt Account Login

注意请使用右键选择“以管理员身份运行”的方式运行 QT 安装程序,否则会出现未响应问题;

Win10 系统中选择如下组件

QT 的 SDK 中各个目录和文件功能说明

  • 1.安装路径:Qt 安装好后包含源码(SDK)、库、示例、手册、qtcreator 集成开发环境
  • 2.编译器:在 qtcreator 中可以用 vs、MinGW(Minimalist GNU for Windows)来编译
  • 3.bin 文件夹:(执行程序时用)包含动态链接库(dll)、可执行文件、资源转化的 cpp 文件的编译结果
  • 4.qml:QML 是一种描述性的脚本语言,文件格式以.qml 结尾,语法格式类似 CSS,但仅支持 javascript 形式的编程控制
  • 5.include 文件夹:(编译环境时用)创建项目时,自带的头文件路径是指定好的
  • 6.lib 文件夹:(编译环境时用)创建项目时,自带的库路径是指定好的
  • 7.如果手动创建项目,需要自己配置编译环境时用到的头文件、库的位置,以及执行程序时用到 bin 目录下的文件位置
  • 8.mkspecs 文件夹:其中有针对不同的编译环境的不同设置
  • 9.plugins 文件夹:其中放置的是配置相关功能插件的 dll 文件

【2】Qt 开发环境搭建(VS2017 及插件 qt-vsaddin)

VS2017 QT 插件下载,qt-vsaddin-msvc2017-2.3.0.vsix,链接:https://pan.baidu.com/s/1EIqPFGcIX7zyIRJ0heyq6A 提取码:7sb4;在安装了 Visual Studio 2017 的前提下,直接双击安装即可;

【3】Visual Studio 2017 创建 QT 工程

新建项目->Visual C++->Qt->Qt Console Application

【4】Visual Studio 2017 导入 QT 工程

问题与解决方案

问题 1. VS创建Qt项目报错:未将对象引用设置到对象的实例

解决方案

选择 Qt VS Tools -> Qt Options

参考致谢

本博客为博主学习笔记,同时参考了网上众博主的博文以及相关专业书籍,在此表示感谢,本文若存在不足之处,请批评指正。

【1】Win10环境下Qt的Windows最新安装包出现未响应的问题的解决办法

【2】VS创建Qt项目报错:未将对象引用设置到对象的实例

【3】安装了vs2019,如何在Qt 4.10.1 中安装构建套件MSVC2017

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值