Qt5.11.1 + VS2017环境搭建(Qt5.11在windows上的安装)

1 篇文章 0 订阅

安装视频:《Qt5.11在windows‘上的编译安装》

---------------------------------------------------------------------------------------------------------------------------------------

安装VisualStudio2017

        VS2017安装包    提取码:7db1

1,安装vs2017

请确保勾选了“通用Windows平台开发”组件,否则VS2017将无法用来进行开发

右侧的安装详细信息部分也尽量与上图一致。

安装完后,请确认以下文件存在:

        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe

        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\nmake.exe

如果存在表示安装成功。

2. 将VS2017新建的cpp、h文件设置为默认UTF-8方法

因为有的最新的linux版本上支支持UTF-8编码,因此我们编写的源代码也需要以UTF-8格式保存。关于UTF-8编码,大家可参考这篇不错的博文:[编码]ASCII、GBK、Unicode(万国码) 和 UTF-8

方法如下:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\vcprojectitems

打开 newc++file.cpp 和 hfile.h 文件。将两个文件重新按照UTF-8编码格式保存:
用windows自带的文本编辑器,选择:文件à另存为à编码选择“UTF-8”:

如果您使用vs2013,那么这两个文件的目录是:Microsoft Visual Studio 12.0\VC\vcprojectitems

安装Windows版本Qt5.1x

Qt下载地址(windows选择编译安装版):qt5.12.9

Windows下需预先安装Python,并将安装目录加入Path环境变量,如:D:\Python36。
下载并安装LLVM,用来编译qt的docs。LLVM安装包:LLVM  提取码:5rtb
安装完后,需要设置:     LLVM_INSTALL_DIR=C:\Program Files\LLVM

1, 将QT源代码包拷贝到:
    C:\Qt\qt-everywhere-src-5.12.9.zip
2, 将QT源代码包解压缩,解压时选择“提取到当前位置”
3, 将解压后的目录重命名为5.12.9
4, 解压缩后的目录结构为:
    c:\qt\5.12.9\qtbase
5, 请确认解压缩后的目录层次为(见下图):

可根据您的实际需要打开VS2017的64位或32位命令行提示符(请将下面目录中):

cd c:/qt/5.12.9

在VS2017的命令行中继续运行configure。

下面的脚本内容跳过了一些组件,您可以自行调整增删这些组件,方法是删掉对应的skip xxx,比如,如果您希望使用qtwebsockets,那么就删掉 -skip  qtwebsockets参数。具体脚本内容如下:

configure -confirm-license  -debug-and-release -prefix  c:/qt/5.11.1/ -opensource -platform win32-msvc

请注意-prefix 后面跟的目录,需要根据您的真实目录进行调整。

Configure成功之后,进行编译安装,请按顺序执行:

nmake
nmake install
nmake docs
nmake install_docs

如果编译出错,需要重新配置,可以运行:

        cd c:/qt/5.12.9

        nmake distclean

然后再重新执行前面的操作(从configure开始)。
安装成功,开始开发
设置环境变量
        QTDIR=C:\qt\5.12.9\
        QMAKESPEC=win32-msvc
在PATH变量中增加如下内容
        %QTDIR%\bin;%QTDIR%\lib;

----------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

《Qt 5/PyQt 5实战指南》本书特色:

这本书里介绍的知识,一般Qt书里没有。

(1)兼顾Qt 5、PyQt 5。

  本书既有C++语言的Qt 5知识,又有Python语言的PyQt 5的知识。本书设计了130个精品案例,其中C++版的Qt 5案例78个,PyQt 5版的案例52个。通过学习两种编程语言的案例,可以更好的满足实际研发工作对编程技能的需求。

(2)系统性组织案例,真正实用。

  本书的组织有利于系统性学习开发技能。本书在内容组织上掌握循序渐进原则,前面的案例为后面的案例打基础。本书重点关注软件设计及实战技能,而非罗列一堆控件接口说明,比如:在开发大型项目时pri文件的设计与使用、配置文件的开发方法、类对象的二进制文件的序列化、向前兼容的二进制文件格式设计、带子属性的属性窗等都属于实用的软件研发技术案例。

(3)配套练习,加深理解。

  除第1、23、24章外,每章后均附有配套练习,本书提供超过140道配套练习题。通过针对性练习,可以加深对知识的理解与掌握,更快投入真正的研发工作。

(4)拒绝从零开始。

  课件配套代码含有改动前的基础代码、改动后的最终代码。其中改动前的代码在src.baseline目录,改动后的最终代码在src目录。读者无需从零开始创建项目,可以在改动前的基础代码上对照案例讲解的内容直接进行修改,这样可以有效提高学习效率。在案例开头一般都配有运行效果图。

-----------------------------------------------------------------
目录

第1章 准备工作 …………………………………………………………………………… 1
1.1 推荐的开发环境 ……………………………………………………………………… 1
1.2 安装 VisualStudio2017 …………………………………………………………… 1
1.3 安装 Python ………………………………………………………………………… 2
1.4 安装 LLVM ………………………………………………………………………… 4
1.5 用编译的方式安装 Qt5.11.1 ……………………………………………………… 5
1.6 用安装包安装 Qt5.11.1 …………………………………………………………… 7
1.7 在 Linux上编译代码出错时的处理 ……………………………………………… 11
1.8 配套源代码 ………………………………………………………………………… 12
第2章 pro与pri…………………………………………………………………………… 13
2.1 案例1 通过一个简单的 EXE来介绍pro的基本配置 ………………………… 13
2.2 案例2 整理一下目录吧 ………………………………………………………… 19
2.3 案例3 加点料———增加一张图片 ……………………………………………… 26
2.4 知识点 pro文件常用配置………………………………………………………… 28
2.5 知识点 pri文件有什么用 ………………………………………………………… 32
2.6 知识点 一劳永逸,引入pri体系 ………………………………………………… 36
2.7 案例4 还是不知道pri怎么用? 来练练手吧 …………………………………… 44
2.8 配套练习 …………………………………………………………………………… 47
第3章 多国语言国际化 ………………………………………………………………… 48
3.1 案例5 怎样实现国际化 ………………………………………………………… 48
3.2 知识点 几种常见的国际化编程场景 …………………………………………… 52
3.3 知识点 中英文翻译失败如何处理 ……………………………………………… 54
3.4 配套练习 …………………………………………………………………………… 56
第4章 打基础 ……………………………………………………………………………… 57
4.1 案例6 开发一个 DLL …………………………………………………………… 57
4.2 知识点 使用命名空间 …………………………………………………………… 61
4.3 案例7 QString的6个实用案例 ………………………………………………… 64
4.4 案例8 用qDebug()输出信息 …………………………………………………… 69
4.5 案例9 使用 QVector处理数组 ………………………………………………… 73
4.6 案例10 使用 QList处理链表 …………………………………………………… 79
4.7 案例11 使用 QMap建立映射 …………………………………………………… 83
4.8 案例12 万能的 QVariant ……………………………………………………… 87
4.9 案例13 使用 QMessagebox弹出各种等级的提示信息………………………… 89
4.10 案例14 使用 QInputDialog获取多种类型的用户输入 ……………………… 92
4.11 知识点 开发自己的公共类库 …………………………………………………… 96
4.12 案例15 普通文本文件读写 …………………………………………………… 99
4.13 案例16 XML格式的配置文件 ……………………………………………… 104
4.14 知识点 INI格式的配置文件…………………………………………………… 109
4.15 案例17 把类对象序列化到二进制文件 ……………………………………… 112
4.16 案例18 从二进制文件反序列化类对象 ……………………………………… 117
4.17 案例19 类的 XML格式序列化 ……………………………………………… 121
4.18 知识点 类的二进制格式序列化———向后兼容 ……………………………… 126
4.19 案例20 使用流方式读写 XML ……………………………………………… 135
4.20 知识点 使用单体模式实现全局配置 ………………………………………… 142
4.21 案例21 读取 GB13000编码的身份证信息 ………………………………… 145
4.22 配套练习 ………………………………………………………………………… 149
第5章 对话框……………………………………………………………………………… 150
5.1 知识点 QtDesigner的使用 …………………………………………………… 150
5.2 知识点 在 Designer中进行界面布局…………………………………………… 156
5.3 案例22 对话框———走起 ……………………………………………………… 160
5.4 案例23 三种编程方式实现信号-槽开发 ……………………………………… 166
5.5 案例24 自定义signal与信号转发 …………………………………………… 170
5.6 案例25 disconnect的用途 ……………………………………………………… 172
5.7 知识点 消息阻塞-防止额外触发槽函数 ……………………………………… 174
5.8 案例26 信号-槽只能用在对话框里吗 ………………………………………… 177
5.9 案例27 对象之间还能怎么传递消息 ………………………………………… 178
5.10 知识点 编程实现控件嵌套布局 ……………………………………………… 180
5.11 知识点 样式 …………………………………………………………………… 182
5.12 案例28 使用 QStackedLayout实现向导界面 ……………………………… 188
5.13 案例29 定时器1 ……………………………………………………………… 192
5.14 案例30 定时器2 ……………………………………………………………… 196
5.15 配套练习 ………………………………………………………………………… 199
第6章 常用控件 ………………………………………………………………………… 200
6.1 案例31 使用 QLabel显示文本或图片 ………………………………………… 200
6.2 案例32 使用 QLineEdit获取多种输入………………………………………… 203
6.3 案例33 使用 QComboBox获取用户输入……………………………………… 207
6.4 案例34 使用 QListWidget展示数据列表 …………………………………… 209
6.5 案例35 使用 QSlider控制进度 ………………………………………………… 213
·Ⅳ·
6.6 配套练习 …………………………………………………………………………… 217
第7章 用 QPainter实现自定义绘制 ………………………………………………… 219
7.1 知识点 怎样进行自定义绘制 …………………………………………………… 219
7.2 案例36 萌新机器人 …………………………………………………………… 222
7.3 案例37 机器人的新装 ………………………………………………………… 226
7.4 配套练习 …………………………………………………………………………… 228
第8章 模型视图代理 …………………………………………………………………… 229
8.1 知识点 Qt的 MVC简介………………………………………………………… 229
8.2 知识点 使用 QStandardItemModel构建树模型 ……………………………… 232
8.3 案例38 使用代理实现属性窗 ………………………………………………… 237
8.4 案例39 带子属性的属性窗 …………………………………………………… 250
8.5 配套练习 …………………………………………………………………………… 261
第9章 开发SDI应用 …………………………………………………………………… 262
9.1 案例40 开发一个SDI应用 …………………………………………………… 262
9.2 案例41 使用自定义视图 ……………………………………………………… 263
9.3 案例42 添加主菜单 …………………………………………………………… 264
9.4 案例43 常规工具条 …………………………………………………………… 267
9.5 知识点 在状态栏上显示鼠标坐标 ……………………………………………… 269
9.6 知识点 使用 QSplashScreen为程序添加启动画面 …………………………… 271
9.7 知识点 工具条反显 ……………………………………………………………… 274
9.8 案例44 打开文件对话框 ……………………………………………………… 276
9.9 案例45 浮动窗里的列表框 …………………………………………………… 278
9.10 案例46 拖放 …………………………………………………………………… 279
9.11 案例47 使用树视图做个工具箱 ……………………………………………… 284
9.12 案例48 使用事项窗展示事项或日志 ………………………………………… 288
9.13 案例49 剪切、复制、粘贴 ……………………………………………………… 294
9.14 案例50 上下文菜单 …………………………………………………………… 299
9.15 案例51 利用属性机制实现动画弹出菜单 …………………………………… 301
9.16 知识点 main()函数一般都写什么 …………………………………………… 308
9.17 配套练习 ………………………………………………………………………… 310
第10章 开发 MDI应用 ………………………………………………………………… 311
10.1 案例52 MDI———采用同一类型的 View …………………………………… 311
10.2 知识点 MDI———采用不同类型的 View …………………………………… 322
10.3 配套练习 ………………………………………………………………………… 331
·Ⅴ·
第11章 重写 Qt事件 …………………………………………………………………… 332
11.1 知识点 QWidget事件简介 …………………………………………………… 332
11.2 案例53 通过重写鼠标事件实现图元移动 ………………………………… 333
11.3 案例54 通过重写键盘事件实现图元移动 ………………………………… 337
11.4 知识点 无法切换到中文输入时该怎么办 …………………………………… 338
11.5 配套练习 ………………………………………………………………………… 339
第12章 开发插件 ………………………………………………………………………… 340
12.1 知识点 什么是插件,插件用来干什么 ……………………………………… 340
12.2 案例55 怎样开发插件 ……………………………………………………… 341
12.3 配套练习 ………………………………………………………………………… 347
第13章 开发多线程应用 ……………………………………………………………… 348
13.1 案例56 多线程和互斥锁 …………………………………………………… 348
13.2 知识点 多线程应用中如何与主界面通信 …………………………………… 354
13.3 案例57 使用 QtConcurrent处理并发———Map模式 ……………………… 356
13.4 案例58 使用 QtConcurrent处理并发———MapReduce模式 ……………… 360
13.5 配套练习 ………………………………………………………………………… 364
第14章 开发网络应用…………………………………………………………………… 365
14.1 案例59 基于 Qt的 TCP/IP编程 …………………………………………… 365
14.2 案例60 TCP/IP多客户端编程 ……………………………………………… 373
14.3 配套练习 ………………………………………………………………………… 388
第15章 PyQt5基础……………………………………………………………………… 389
15.1 知识点 PyQt5简介 ………………………………………………………… 389
15.2 知识点 搭建 PyQt5开发环境 ……………………………………………… 393
15.3 案例61 编写第一个 PyQt5程序 …………………………………………… 397
15.4 案例62 给应用加上图片 …………………………………………………… 400
15.5 案例63 信号-槽初探———窗口 A 调用窗口 B ……………………………… 404
15.6 案例64 编写代码实现控件布局 …………………………………………… 406
15.7 案例65 在窗体 A 中嵌入自定义控件 B …………………………………… 411
15.8 案例66 使用 QLabel显示 GIF动画………………………………………… 413
15.9 案例67 使用 QLineEdit获取多种输入 …………………………………… 414
15.10 案例68 使用 QComboBox获取用户输入 ………………………………… 417
15.11 案例69 使用 QListWidget展示并操作列表 ……………………………… 420
15.12 案例70 使用 QSlider控制进度 …………………………………………… 423
15.13 案例71 使用 QMessagebox弹出提示信息 ……………………………… 427
15.14 案例72 使用 QInputDialog获取用户输入 ………………………………… 430
·Ⅵ·
15.15 案例73 使用 QFileDialog获取用户选择的文件名 ……………………… 434
15.16 知识点 把程序最小化到系统托盘 ………………………………………… 435
15.17 配套练习 ……………………………………………………………………… 438
第16章 PyQt5进程内通信 …………………………………………………………… 439
16.1 知识点 PyQt5中的信号-槽 ………………………………………………… 439
16.2 案例74 使用自定义信号 …………………………………………………… 441
16.3 案例75 带参数的自定义信号 ……………………………………………… 443
16.4 知识点 信号比槽的参数少该怎么办 ………………………………………… 446
16.5 案例76 使用 QTimer实现定时器 ………………………………………… 448
16.6 知识点 使用timerEvent()实现定时器 ……………………………………… 450
16.7 案例77 使用 QStackedLayout实现向导界面 ……………………………… 452
16.8 配套练习 ………………………………………………………………………… 456
第17章 PyQt5实现自定义绘制 ……………………………………………………… 457
17.1 知识点 怎样进行自定义绘制 ………………………………………………… 457
17.2 案例78 萌新机器人 ………………………………………………………… 460
17.3 案例79 机器人的新装 ……………………………………………………… 464
17.4 配套练习 ………………………………………………………………………… 466
第18章 PyQt5中的模型视图代理 …………………………………………………… 467
18.1 知识点 使用 QStandardItemModel构建树模型 …………………………… 467
18.2 案例80 最简单的属性窗 …………………………………………………… 470
18.3 案例81 使用代理实现属性窗 ……………………………………………… 472
18.4 案例82 自定义属性窗 ……………………………………………………… 474
18.5 案例83 带子属性的属性窗 ………………………………………………… 481
18.6 配套练习 ………………………………………………………………………… 489
第19章 PyQt5开发SDI应用 ………………………………………………………… 490
19.1 案例84 开发一个SDI应用 ………………………………………………… 490
19.2 案例85 使用自定义视图 …………………………………………………… 491
19.3 案例86 添加主菜单 ………………………………………………………… 492
19.4 案例87 常规工具条 ………………………………………………………… 495
19.5 案例88 在状态栏上显示鼠标坐标 ………………………………………… 497
19.6 知识点 使用 QSplashScreen为程序添加启动画面 ………………………… 499
19.7 知识点 工具条反显 …………………………………………………………… 502
19.8 案例89 浮动窗里的列表框 ………………………………………………… 503
19.9 案例90 拖放 ………………………………………………………………… 505
19.10 案例91 使用树视图做个工具箱 …………………………………………… 510
19.11 案例92 使用事项窗展示事项或日志 ……………………………………… 513
·Ⅶ·
19.12 案例93 剪切、复制、粘贴 …………………………………………………… 518
19.13 案例94 上下文菜单 ………………………………………………………… 523
19.14 配套练习 ……………………………………………………………………… 524
第20章 PyQt5开发 MDI应用 ……………………………………………………… 525
20.1 案例95 MDI———采用同一类型的 View …………………………………… 525
20.2 知识点 MDI———采用不同类型的 View …………………………………… 534
20.3 配套练习 ………………………………………………………………………… 540
第21章 PyQt5事件……………………………………………………………………… 541
21.1 案例96 通过重写鼠标事件实现图元移动 ………………………………… 541
21.2 案例97 通过重写键盘事件实现图元移动 ………………………………… 544
21.3 配套练习 ………………………………………………………………………… 545
第22章 PyQt5开发多线程应用 ……………………………………………………… 546
22.1 案例98 多线程和互斥锁 …………………………………………………… 546
22.2 知识点 多线程应用中如何刷新主界面 ……………………………………… 550
22.3 配套练习 ………………………………………………………………………… 552
第23章 项目实战———敏捷看板(C++版)…………………………………………… 554
23.1 知识点 项目实战准备———访问SQLite数据库 …………………………… 554
23.2 知识点 项目实战准备———使用 QCustomPlot绘制曲线 ………………… 558
23.3 案例99 项目实战———敏捷看板 …………………………………………… 562
第24章 项目实战———敏捷看板(PyQt版)………………………………………… 573
24.1 知识点 项目实战准备———访问SQLite数据库 …………………………… 573
24.2 知识点 项目实战准备———用 Matplotlib绘制曲线 ………………………… 577
24.3 案例100 项目实战———敏捷看板 …………………………………………… 579
附录 A PyQt5常用类所在模块 ……………………………………………………… 592

---------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

更多内容,请关注微信公众号:软件特攻队(微信号:xingdianketang)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女儿叫老白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值