本书是基于QtCreator集成开发环境的入门书籍,详细介绍了QtCreator开发环境的使用和Qt基本知识点的应用。本书内容主要包括Qt的基本应用,以及Qt在图形动画、影音媒体、数据处理和
网络通信方面的应用内容。与第2版相比,本书使用Z新的Qt5.6.1和QtCreator4.0.1进行了全书修订,主要重写了3D绘图、影音媒体、WebKit等章节;添加了Qt5框架介绍、将Qt4代码迁移到
Qt5等相关附录,从而帮助初学者快速入门Qt5编程。
本书内容全面、实用,讲解通俗易懂,适合没有Qt编程基础、有Qt编程基础但是没有形成知识框架以及想学习Qt某一方面应用的读者,也适合想从Qt4跨入Qt5编程的读者。对于想学习QML及QtQuick编程的读者,可以学习《Qt5 编程入门》一书;想进一步学习Qt开发实例的读者,可以学习《Qt及QtQuick开发实战精解》一书。
第1篇 基本应用篇
第1章 QtCreator简介………………………………………………………………… 2
1.1 QtCreator的下载与安装……………………………………………………… 2
1.2 QtCreator环境介绍…………………………………………………………… 3
1.2.1 运行一个示例程序………………………………………………………… 6
1.2.2 帮助模式…………………………………………………………………… 8
1.3 Qt工具简介…………………………………………………………………… 10
1.3.1 QtAssistant(Qt助手)…………………………………………………… 10
1.3.2 QtDesigner(Qt设计师)………………………………………………… 11
1.3.3 QtLinguist(Qt语言家) ………………………………………………… 11
1.4 小 结…………………………………………………………………………… 12
第2章 HelloWorld …………………………………………………………………… 13
2.1 编写HelloWorld程序………………………………………………………… 13
2.1.1 新建QtWidgets应用…………………………………………………… 13
2.1.2 文件说明与界面设计……………………………………………………… 16
2.2 程序的运行与发布……………………………………………………………… 18
2.2.1 程序的运行………………………………………………………………… 18
2.2.2 程序的发布………………………………………………………………… 21
2.2.3 设置应用程序图标………………………………………………………… 23
2.3 helloworld程序源码与编译过程详解………………………………………… 24
2.3.1 纯代码编写程序与命令行编译…………………………………………… 25
2.3.2 使用.ui文件……………………………………………………………… 31
2.3.3 自定义C++类…………………………………………………………… 35
2.3.4 使用Qt设计师界面类…………………………………………………… 38
2.4 项目模式和项目文件介绍……………………………………………………… 39
2.4.1 项目模式…………………………………………………………………… 39
2.4.2 项目文件…………………………………………………………………… 40
2.4.3 关于本书源码的使用……………………………………………………… 41
2.5 小 结…………………………………………………………………………… 41
第3章 窗口部件……………………………………………………………………… 42
3.1 基础窗口部件QWidget ……………………………………………………… 42
3.1.1 窗口、子部件以及窗口类型……………………………………………… 43
3.1.2 窗口几何布局……………………………………………………………… 46
3.1.3 程序调试…………………………………………………………………… 46
3.2 对话框QDialog………………………………………………………………… 50
3.2.1 模态和非模态对话框……………………………………………………… 50
3.2.2 多窗口切换………………………………………………………………… 51
3.2.3 标准对话框………………………………………………………………… 56
3.3 其他窗口部件…………………………………………………………………… 63
3.3.1 QFrame类族……………………………………………………………… 63
3.3.2 按钮部件…………………………………………………………………… 67
3.3.3 QLineEdit ………………………………………………………………… 68
3.3.4 QAbstractSpinBox ……………………………………………………… 71
3.3.5 QAbstractSlider ………………………………………………………… 72
3.4 小 结…………………………………………………………………………… 72
第4章 布局管理……………………………………………………………………… 73
4.1 布局管理系统…………………………………………………………………… 73
4.1.1 布局管理器………………………………………………………………… 74
4.1.2 设置部件大小……………………………………………………………… 77
4.1.3 可扩展窗口………………………………………………………………… 80
4.1.4 分裂器(QSplitter)………………………………………………………… 81
4.2 设置伙伴(buddy)……………………………………………………………… 82
4.3 设置Tab键顺序……………………………………………………………… 83
4.4 QtCreator中的定位器………………………………………………………… 83
4.5 小 结…………………………………………………………………………… 84
第5章 应用程序主窗口……………………………………………………………… 85
5.1 主窗口框架……………………………………………………………………… 85
5.1.1 Qt资源系统、菜单栏和工具栏…………………………………………… 86
5.1.2 中心部件…………………………………………………………………… 91
5.1.3 Dock部件………………………………………………………………… 92
5.1.4 状态栏……………………………………………………………………… 93
5.1.5 自定义菜单………………………………………………………………… 93
5.2 富文本处理……………………………………………………………………… 96
5.2.1 富文本文档结构…………………………………………………………… 96
5.2.2 文本块……………………………………………………………………… 98
5.2.3 表格、列表与图片………………………………………………………… 101
5.2.4 查找功能………………………………………………………………… 102
5.2.5 语法高亮与HTML …………………………………………………… 104
5.3 拖放操作……………………………………………………………………… 106
5.3.1 使用拖放打开文件……………………………………………………… 106
5.3.2 自定义拖放操作………………………………………………………… 107
5.4 打印文档……………………………………………………………………… 111
5.5 小 结………………………………………………………………………… 114
第6章 事件系统……………………………………………………………………… 115
6.1 Qt中的事件…………………………………………………………………… 115
6.1.1 事件的处理……………………………………………………………… 116
6.1.2 事件的传递……………………………………………………………… 116
6.2 鼠标事件和滚轮事件………………………………………………………… 120
6.3 键盘事件……………………………………………………………………… 122
6.4 定时器事件与随机数………………………………………………………… 126
6.5 事件过滤器与事件的发送…………………………………………………… 128
6.6 小 结………………………………………………………………………… 130
第7章 Qt对象模型与容器类……………………………………………………… 131
7.1 对象模型……………………………………………………………………… 131
7.1.1 信号和槽………………………………………………………………… 132
7.1.2 属性系统………………………………………………………………… 139
7.1.3 对象树与拥有权………………………………………………………… 142
7.1.4 元对象系统……………………………………………………………… 144
7.2 容器类………………………………………………………………………… 145
7.2.1 Qt的容器类介绍………………………………………………………… 146
7.2.2 遍历容器………………………………………………………………… 150
7.2.3 通用算法………………………………………………………………… 156
7.2.4 QString ………………………………………………………………… 158
7.2.5 QByteArray和QVariant ……………………………………………… 163
7.3 正则表达式…………………………………………………………………… 165
7.3.1 正则表达式介绍………………………………………………………… 165
7.3.2 正则表达式组成元素…………………………………………………… 167
7.3.3 文本捕获………………………………………………………………… 170
7.3.4 新的QRegularExpression类…………………………………………… 171
7.4 小 结………………………………………………………………………… 173
第8章 界面外观……………………………………………………………………… 174
8.1 Qt风格………………………………………………………………………… 174
8.2 Qt样式表……………………………………………………………………… 177
8.2.1 Qt样式表介绍…………………………………………………………… 177
8.2.2 Qt样式表语法…………………………………………………………… 178
8.2.3 自定义部件外观与换肤………………………………………………… 181
8.3 特殊效果窗体………………………………………………………………… 185
8.3.1 不规则窗体……………………………………………………………… 185
8.3.2 透明窗体………………………………………………………………… 186
8.3.3 实现Windows7毛玻璃效果…………………………………………… 189
8.4 小 结………………………………………………………………………… 190
第9章 国际化、帮助系统和Qt插件……………………………………………… 191
9.1 国际化………………………………………………………………………… 191
9.1.1 使用QtLinguist翻译应用程序……………………………………… 191
9.1.2 程序翻译中的相关问题………………………………………………… 196
9.2 帮助系统……………………………………………………………………… 199
9.2.1 简单的帮助提示………………………………………………………… 199
9.2.2 定制QtAssistant ……………………………………………………… 199
9.3 创建Qt插件………………………………………………………………… 207
9.3.1 在设计模式提升窗口部件……………………………………………… 207
9.3.2 创建应用程序插件……………………………………………………… 208
9.3.3 创建QtDesigner自定义部件………………………………………… 212
9.4 小 结………………………………………………………………………… 214
第2篇 图形动画篇
第10章 2D 绘图……………………………………………………………………… 216
10.1 基本绘制和填充……………………………………………………………… 216
10.1.1 基本图形的绘制和填充………………………………………………… 217
10.1.2 渐变填充………………………………………………………………… 222
10.2 坐标系统……………………………………………………………………… 225
10.2.1 抗锯齿渲染……………………………………………………………… 226
10.2.2 坐标变换………………………………………………………………… 228
10.3 其他绘制……………………………………………………………………… 235
10.3.1 绘制文字………………………………………………………………… 235
10.3.2 绘制路径………………………………………………………………… 236
10.3.3 绘制图像………………………………………………………………… 239
10.3.4 复合模式………………………………………………………………… 244
10.4 双缓冲绘图…………………………………………………………………… 246
10.5 绘图中的其他问题…………………………………………………………… 248
10.6 小 结………………………………………………………………………… 250
第11章 图形视图、动画和状态机框架……………………………………………… 251
11.1 图形视图框架的结构………………………………………………………… 251
11.1.1 场 景…………………………………………………………………… 252
11.1.2 视 图…………………………………………………………………… 253
11.1.3 图形项…………………………………………………………………… 255
11.2 图形视图框架的坐标系统和事件处理……………………………………… 257
11.2.1 坐标系统………………………………………………………………… 257
11.2.2 事件处理与传播………………………………………………………… 262
11.3 图形视图框架的其他特性…………………………………………………… 267
11.3.1 图形效果………………………………………………………………… 267
11.3.2 动画、碰撞检测和图形项组…………………………………………… 268
11.3.3 打印和使用OpenGL进行渲染……………………………………… 271
11.3.4 窗口部件、布局和内嵌部件…………………………………………… 272
11.4 动画框架……………………………………………………………………… 274
11.4.1 实现属性动画…………………………………………………………… 275
11.4.2 使用缓和曲线…………………………………………………………… 276
11.4.3 动画组…………………………………………………………………… 276
11.4.4 在图形视图框架中使用动画…………………………………………… 278
11.5 状态机框架…………………………………………………………………… 280
11.5.1 创建状态机……………………………………………………………… 280
11.5.2 在状态机中使用动画…………………………………………………… 281
11.5.3 状态机框架的其他特性………………………………………………… 283
11.6 小 结………………………………………………………………………… 290
第12章 3D 绘图……………………………………………………………………… 291
12.1 使用OpenGL绘制图形介绍……………………………………………… 291
12.2 绘制多边形…………………………………………………………………… 295
12.2.1 使用顶点数组…………………………………………………………… 295
12.2.2 使用缓存………………………………………………………………… 297
12.3 绘制彩色3D图形…………………………………………………………… 297
12.3.1 为图形设置顶点颜色…………………………………………………… 298
12.3.2 实现3D效果…………………………………………………………… 299
12.4 使用纹理贴图………………………………………………………………… 300
12.5 小 结………………………………………………………………………… 303
第3篇 影音媒体篇
第13章 音视频播放………………………………………………………………… 305
第14章 相机和音频录制…………………………………………………………… 322
第4篇 数据处理篇
第15章 文件、目录和输入/输出…………………………………………………… 336
第16章 模型/视图编程……………………………………………………………… 349
第17章 数据库和XML …………………………………………………………… 380
第5篇 网络通信篇
第18章 网络编程…………………………………………………………………… 413
第19章 进程和线程………………………………………………………………… 446
第20章 QtWebEngine ……………………………………………………………… 465
附录A Qt5简介…………………………………………………………………… 477
两年前,当本书编写第2版时,Qt5已经上市,当时基于多方面考虑,没有更新到Qt5版本。后来为了满足广大读者的需要,出版了《Qt5编程入门》,但是与书名不符的是,里面主要包含了QML和QtQuick的内容,因为从某方面而言,Qt5最大的更新其实就是QtQuick。而对于本书涉及的C++ Widgets编程,在网站上提供了相应的迁移教程,帮助读者将Qt4程序迁移到Qt5。
之所以迟迟没有将本书更新到Qt5,是因为作者感觉还不是时候。直到今年3月Qt推出了5.6版本,并且是Qt5以来第一个长期支持版本,提供3年的安全更新和漏洞修复,作者感觉是时候将本书进行全面更新、引领读者进入Qt5时代了。
这次改版是基于Qt5.6.1对全书进行修订,修改工作细化到每一句讲解、每一行代码、每一张图片,确保所有内容都得到更新,整体工作量不亚于重写全书。其中,较大的改动是重写了第12章3D绘图、第13~14章多媒体内容、第20章WebKit,因为Qt4中相关模块被Qt5中新的模块代替,具体更改可以参见关章节。这次改版对Qt5的更新以及将程序从Qt4迁移到Qt5做了全面介绍,但是为了不影响初学者的主线学习,将这些内容放到了附录中。
本系列丛书现在包括3本:《QtCreator快速入门》、《Qt及QtQuick开发实战精解》、《Qt5编程入门》。由于历史原因,这3本书的书名可能无法代表其中的内容,这里做一下说明。
《QtCreator快速入门》讲解了经典的C++ Widgets编程,是Qt最基础和最核心的内容,也是Qt入门必学的内容,现在最新版本为第3版,基于Qt5.6.1和QtCreator4.0.1。
《Qt5编程入门》讲解了QML语言、QtQuick编程和移动开发相关内容,主要用于为移动设备开发动态触摸式界面,QML和QtQuick虽然是全新的语言和内容,但是其包含在Qt框架之中,很多机制、理念都与经典的C++ Widgets编程一致,所以建议先学习《QtCreator快速入门》,再来学习本书,现在最新版本是即将出版的第2版,将基于Qt5.7。
《Qt及QtQuick开发实战精解》以前包括了C++ Widgets综合实例程序和QtQuick的基础内容,因为现在QtQuick的基础内容已经编写到了《Qt5编程入门》中,所以,今后该书的定位是C++ Widgets综合实例程序和QtQuick综合实例程序,现在最新版本是即将出版的第2版,将基于Qt5.7。
《QtCreator快速入门(第3版)》出版后,《Qt5编程入门(第2版)》和《Qt及QtQuick开发实战精解(第2版)》也会很快出版,这样本系列丛书已经基本成型,将覆盖Qt几乎全部基础内容,并提供应用了所有知识点的综合实例程序,读者使用该系列丛书可以轻松入门Qt编程世界。
最后感谢北京航空航天大学出版社的编辑和那些关注、爱好Qt的朋友们,是他们的支持和帮助,才让作者一直坚持下来。一些朋友还参与了该系列丛书的审校和代码审核工作,他们是吴迪wd007)、白建平(XChinux)、董世明、程梁(豆子)、刘柏燊(紫侠)和周慧宗(hzzhou)等,是众多朋友的认真工作,才使得该系列丛书可以成为经典作品,这里对他们的付出表示感谢。
霍亚飞
2016年11月
说实话,在购买《Qt Creator快速入门(第3版)》之前,我对“快速入门”这个概念有些怀疑,总觉得“快速”往往意味着“浅尝辄止”,但我错了。这本书在保证“快速”的同时,内容深度和广度都让我感到满意。它不仅仅是停留在API的罗列和功能的介绍,而是深入到了Qt开发的一些核心思想和设计模式。我最喜欢的部分是关于Qt Widgets和Qt Quick的对比讲解。通过这本书,我终于明白了在什么场景下选择Widgets,又在什么场景下更适合使用Quick,这对于我未来在不同项目中做出技术选型非常有帮助。而且,书中对于跨平台开发的讲解也给了我很大的启发,了解了Qt如何实现一套代码在Windows、Linux、macOS甚至嵌入式设备上运行,这让我看到了Qt在广阔应用前景下的潜力。书中的很多案例都非常有代表性,比如一个简单的计算器应用,从UI布局到逻辑实现,再到最后的打包部署,都讲解得非常完整,让我有机会从头到尾地体验一次完整的Qt应用开发流程。读完这些章节,我感觉自己对Qt的整体认知有了一个质的飞跃,不再是零散的知识点,而是形成了一个完整的知识体系。
评分拿到这本《Qt Creator快速入门(第3版)》时,我本来只是抱着试试看的心态,毕竟之前接触过一些编程入门书籍,但总感觉不够系统,或者说实操性不强,看完后好像还是云里雾里。可这本书真的给了我惊喜。翻开第一页,我就被那种清晰的逻辑和循序渐进的讲解吸引住了。作者并没有一开始就抛出大量晦涩难懂的概念,而是从最基础的环境搭建开始,一步一步地引导读者。我尤其欣赏的是,书里提供的每一个代码示例都非常贴近实际应用,我甚至可以毫不犹豫地将它们复制粘贴到我的项目中进行测试和修改,这种“即学即用”的感觉大大增强了我的学习动力。而且,书中对Qt Creator这款IDE的使用技巧讲解得非常到位,从项目创建、代码编辑、调试到UI设计,都讲解得细致入微。我之前一直觉得Qt Creator功能很强大,但很多高级功能我根本不知道怎么用,这本书就像一座宝藏,让我解锁了许多之前从未留意过的便利工具,大大提高了我的开发效率。比如,书中关于信号与槽机制的讲解,是我之前学习Qt时最大的困扰之一,但这本书用非常形象的比喻和简洁的代码示例,让我一下子就茅塞顿开,理解得透彻了很多。读这本书的过程,更像是和一位经验丰富的导师一起工作,他会耐心地解答你的疑问,引导你克服难关。
评分对于刚开始接触Qt编程的新手来说,《Qt Creator快速入门(第3版)》这本书简直就是一座灯塔,指引着方向。我之前尝试过一些其他语言的学习,但编程思维的建立总是磕磕绊绊,而这本书从一开始就非常注重培养读者的“Qt思维”。它不仅仅是教你如何写代码,更重要的是让你理解Qt的设计理念和工作方式。书中对事件处理、内存管理、对象模型等核心概念的讲解,都非常到位,而且通过生动形象的比喻,将这些抽象的概念具象化,让我这个初学者也能轻松理解。我最喜欢的部分是书中关于调试技巧的介绍。我之前调试代码的时候,总是靠“打印大法”,效率非常低下。这本书详细讲解了Qt Creator强大的调试器功能,包括断点设置、单步执行、变量监视等等,让我彻底摆脱了低效的调试方式,极大地提升了解决bug的能力。总而言之,这本书为我打下了坚实的Qt编程基础,让我对未来的学习和开发充满了信心。
评分作为一名已经有几年编程经验的开发者,但对Qt涉足不深,一直想系统地学习一下。偶然间看到了《Qt Creator快速入门(第3版)》这本书,觉得名字很契合我的需求。拿到手后,确实没有让我失望。这本书的结构安排得非常合理,从基础概念的引入,到核心模块的讲解,再到高级特性的介绍,层层递进,非常适合我这种有一定编程基础但对Qt不熟悉的读者。我特别欣赏书中对Qt Creator的“深度挖掘”。很多其他的Qt书籍可能更侧重于Qt框架本身的API,而这本书则花了相当大的篇幅来讲解如何高效地使用Qt Creator这个强大的开发工具。比如,书中关于资源管理、国际化、性能调优等方面的内容,都给了我很多实用的建议和方法。我之前在处理项目中的图片和图标时,总是自己手动管理,效率很低,看了书里关于Qt资源文件的讲解后,我才意识到原来有这么方便的方式,大大简化了我的工作流程。此外,书中还提到了一些Qt的“最佳实践”,这对于养成良好的编程习惯非常有帮助,避免了一些常见的陷阱。
评分这本书《Qt Creator快速入门(第3版)》最让我印象深刻的是它带来的那种“成就感”。每读完一个章节,我都会尝试着去复现书中的例子,然后根据自己的想法进行修改和扩展。令我惊喜的是,书中的代码写得非常规范,而且作者预留了很多扩展的可能性,让我很容易就能在原有基础上添加新功能,看到自己的小项目一点点丰富起来,那种感觉真的非常棒。我尤其喜欢书中关于模型/视图(Model/View)编程的讲解。这部分内容通常是很多初学者容易感到困惑的地方,但这本书用一种非常直观的方式,结合具体的例子,将复杂的数据展示和管理逻辑变得清晰易懂。我之前在做一个需要展示大量数据的列表时,总是感觉代码写得非常臃肿,看了书里的讲解后,我才发现原来可以通过QAbstractItemModel和相关视图来实现更高效、更灵活的解决方案。这让我对Qt的强大之处有了更深刻的认识,也更加期待能够利用Qt开发出更多优秀的应用。
评分2、打开书难闻油墨味,质量很差油墨印刷;
评分不错啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
评分专业必备,正版,送货快,很喜欢。
评分很好,很快,唯一瑕疵就是封面有褶皱
评分书内容是好的,就是纸张感觉像翻版
评分书的内容很好,但是京东自营的书最近买了几本都没有塑封,送过来都有点小瑕疵!
评分不错,是正品
评分好。。。。。。。。。。。。。。。。。。。。
评分书内容很不错的,排版确实有点紧凑,不过瑕不掩瑜了。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有