新書推薦:
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3 巴菲特芒格马斯克推崇的思维方式 风靡华尔街的思维训练法 沙恩·帕里什 著
》
售價:NT$
295.0
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:NT$
340.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:NT$
349.0
《
世界巨变:严复的角色(王中江著作系列)
》
售價:NT$
500.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:NT$
1800.0
|
編輯推薦: |
全新,基于 Qt 5.3 编写,全面涉及 Qt Quick;
经典,植根于 Qt 网络博客教程,可无限更新;
基础,对每个知识点详尽讲解,并设计了示例程序;
系统,与《Qt Creator 快速入门(第2版)》相辅相成;
|
內容簡介: |
本书是基于Qt 5的QML和Qt Quick入门书籍,详细介绍了QML语言的语法和编写Qt Quick程序需要用到的基本知识点。本书内容主要包括Qt 5的介绍、QML语法、Qt Quick基础知识以及在图形动画、数据处理和多媒体方面的应用等。
本书侧重讲解Qt 5中QML和Qt Quick的内容,适合希望学习QML编程以及希望使用Qt开发移动应用的读者。对于没有任何Qt基础或者想学习Qt C++编程的读者,可以参考《Qt Creator快速入门(第2版)》一书。
本书内容源于作者的网络博客,作者会在网上及时解答读者疑问、更新修改内容、发布相关教程和配套资料,敬请读者关注Qter开源社区(www.qter.org)的相关内容。
|
關於作者: |
霍亚飞,网名yafeilinux,嵌入式软件工程师,热爱编程,热爱开源!在博客中发表了大量Qt、Linux教程和开源软件,被众多网友奉为经典!参与创建了www.yafeilinux.com和Qt爱好者社区(www.qter.org),进行Qt及开源项目的推广和普及! 程梁,网名devbean,软件研发工程师,关注IT技术的创新和改革,专注于Qt技术开发教程的编写。
建立devbean.net博客,创作大量有创意、实践性强的技术开发文章,与广大网友分享、互动,
在网络上广受好评。致力于带领广大Qt爱好者步入Qt的精彩世界,与更多朋友分享成功的乐趣。
|
目錄:
|
第1章Qt 5简介1
1.1Qt 5架构1
1.1.1模块架构1
1.1.2图形界面库的架构5
1.1.3Qt 5架构主要特点6
1.2Qt 5的特点6
1.2.1Qt 5新增的主要功能6
1.2.2Qt 5与Qt 4的兼容性11
1.2.3C++还是QML12
1.2.4Qt 5源代码文件的编码12
1.2.5移动平台开发13
1.3小结13
第2章将Qt 4代码迁移到Qt 514
2.1Qt 5版本的HelloWorld14
2.1.1Qt 5的下载与安装14
2.1.2创建Hello World程序15
2.1.3Qt 4程序迁移到Qt 5的注意事项17
2.2Qt 4程序迁移实例19
2.2.1修改编码19
2.2.2修改代码20
2.2.3设置应用程序图标21
2.2.4发布程序22
2.3新的信号槽语法22
2.3.1新旧语法对比22
2.3.2新的语法示例23
2.4对C++11的支持26
2.4.1Lambda表达式26
2.4.2适用于C++11的宏28
2.5全新的插件系统29
2.6小结32
第3章Qt Quick的世界33
3.1全新的QML和Qt Quick33
3.2Qt Quick项目36
3.2.1Qt Quick UI项目36
3.2.2Qt Quick Application项目39
3.2.3运行示例程序42
3.2.4Qt Quick程序的发布42
3.3将QML程序迁移到Qt 542
3.3.1Qt 5中QML和Qt Quick的更改43
3.3.2QML 程序移植示例46
3.4小结48
第4章QML语法49
4.1QML语法基础49
4.2import导入语句51
4.2.1模块(命名空间)导入语句52
4.2.2目录导入语句53
4.2.3JavaScript资源导入语句55
4.3QML类型系统55
4.3.1基本类型55
4.3.2JavaScript类型57
4.3.3对象类型57
4.4对象特性(Attributes)57
4.4.1id特性58
4.4.2属性特性58
4.4.3信号和信号处理器特性65
4.4.4方法特性69
4.4.5附加属性和附加信号处理器70
4.5集成JavaScript72
4.5.1JavaScript表达式72
4.5.2从JavaScript动态创建QML对象77
4.5.3在QML中定义JavaScript资源81
4.5.4在QML中导入JavaScript资源83
4.5.5JavaScript宿主环境85
4.6QML文档86
4.6.1通过QML文档定义对象类型87
4.6.2QML组件89
4.6.3作用域和命名解析90
4.6.4资源加载和网络透明性95
4.6.5QML的国际化97
4.6.6QML的编码约定100
4.7QML模块103
4.7.1定义一个QML模块103
4.7.2支持的QML模块类型104
4.8小结104
第5章Qt Quick基础105
5.1基础可视项目105
5.1.1Item105
5.1.2Rectangle109
5.1.3Text110
5.1.4TextInput117
5.1.5TextEdit120
5.2布局管理121
5.2.1定位器Positioners121
5.2.2基于锚(anchors)的布局126
5.2.3Layouts129
5.3事件处理133
5.3.1MouseArea133
5.3.2鼠标事件(MouseEvent)和滚轮事件(WheelEvent)135
5.3.3拖放事件(DragEvent)136
5.3.4键盘事件(KeyEvent)和焦点作用域(FocusScope)140
5.3.5定时器(Timer)145
5.4使用Loader动态加载组件145
5.4.1Loader的大小与行为146
5.4.2从加载的项目中接收信号147
5.4.3焦点和键盘事件147
5.5小结148
第6章Qt Quick控件和对话框149
6.1构建第一个示例149
6.2ApplicationWindow应用程序窗口150
6.3Window154
6.4按钮类控件155
6.4.1ExclusiveGroup156
6.4.2Button157
6.4.3CheckBox157
6.4.4RadioButton158
6.4.5Switch158
6.5数据选择类控件159
6.5.1ComboBox159
6.5.2Slider160
6.5.3SpinBox161
6.6文本类控件161
6.6.1TextField161
6.6.2TextArea162
6.7其他控件163
6.7.1Label163
6.7.2GroupBox163
6.7.3BusyIndicator164
6.7.4ProgressBar164
6.8导航类视图165
6.8.1ScrollView165
6.8.2SplitView165
6.8.3StackView166
6.8.4TabView170
6.8.5TableView171
6.9标准对话框172
6.9.1ColorDialog173
6.9.2FileDialog173
6.9.3FontDialog174
6.9.4MessageDialog175
6.10定义控件样式176
6.11小结177
第7章图形动画基础178
7.1颜色、渐变和调色板178
7.1.1颜色(color)178
7.1.2渐变(Gradient)181
7.1.3系统调色板(SystemPalette)181
7.2图片、边界图片和动态图片182
7.2.1图片(Image)182
7.2.2边界图片(BorderImage)184
7.2.3动态图片(AnimatedImage)185
7.3缩放、旋转和平移变换186
7.3.1使用属性实现简单变换186
7.3.2使用Transform实现高级变换188
7.4状态(State)189
7.4.1创建状态190
7.4.2默认状态和when属性191
7.5动画和过渡192
7.5.1触发动画193
7.5.2控制动画的执行198
7.5.3精灵动画(Sprite Animations)199
7.5.4共享动画实例203
7.6Flickable和Flipable204
7.6.1弹动效果(Flickable)204
7.6.2翻转效果(Flipable)206
7.7小结207
第8章图形效果208
8.1混合效果(Blend)209
8.2颜色效果(Color)211
8.3渐变效果(Gradient)214
8.3.1锥形渐变(ConicalGradient)214
8.3.2线性渐变(LinearGradient)215
8.3.3辐射渐变(RadialGradient)215
8.4变形效果(Distortion)216
8.5阴影效果(Drop Shadow)217
8.5.1投影(DropShadow)217
8.5.2内阴影(InnerShadow)218
8.6模糊效果(Blur)219
8.6.1快速模糊(FastBlur)219
8.6.2高斯模糊(GaussianBlur)220
8.6.3递归模糊(RecursiveBlur)220
8.6.4遮罩模糊(MaskedBlur)221
8.7动感模糊效果(Motion Blur)222
8.7.1方向模糊(DirectionalBlur)222
8.7.2径向模糊(RadialBlur)223
8.7.3缩放模糊(ZoomBlur)224
8.8发光效果(Glow)225
8.8.1发光(Glow)225
8.8.2矩形发光(RectangularGlow)226
8.9遮罩效果(Mask)227
8.9.1不透明遮罩(OpacityMask)227
8.9.2阀值遮罩(ThresholdMask)228
8.10小结229
第9章粒子系统230
9.1ParticleSystem230
9.2发射器(Emitter)232
9.3渲染器(ParticlePainters)233
9.4TrailEmitter236
9.5粒子组237
9.6随机参数239
9.7影响器(Affector)240
9.8小结245
第10章Canvas基础246
10.1Canvas的使用246
10.2绘制操作248
10.2.1绘制参数设置248
10.2.2绘制矩形250
10.2.3状态的保存与恢复251
10.2.4绘制文本252
10.2.5绘制路径254
10.3渐变填充259
10.3.1线性渐变259
10.3.2辐射渐变260
10.3.3锥形渐变261
10.4阴影261
10.5使用图像262
10.6坐标变换264
10.6.1平移264
10.6.2缩放265
10.6.3旋转266
10.6.4扭曲267
10.6.5transform函数总结267
10.7小结268
第11章模型和视图269
11.1模型视图架构简介269
11.2数据模型271
11.2.1ListModel271
11.2.2WorkerScript273
11.2.3ObjectModel275
11.2.4DelegateModel275
11.2.5Package277
11.2.6XmlListModel278
11.2.7LocalStorage279
11.2.8使用C++扩展QML模型282
11.3视图类型285
11.3.1ListView286
11.3.2GridView291
11.3.3视图过渡292
11.3.4PathView295
11.3.5WebView298
11.4调整性能299
11.5小结300
第12章多媒体应用301
12.1多媒体模块介绍301
12.2播放音频302
12.2.1播放压缩音频302
12.2.2播放未压缩音频304
12.3播放视频304
12.3.1使用Video播放视频文件304
12.3.2对视频使用图形效果305
12.4媒体播放器(MediaPlayer)308
12.4.1播放音视频308
12.4.2使用Windows平台附加功能309
12.5小结314
第13章QML与C++的集成315
13.1QML运行时的C++类316
13.1.1QQmlEngine316
13.1.2QQmlContext317
13.1.3QQmlComponent318
13.1.4QQmlExpression320
13.2在QML中使用C++特性320
13.2.1数据类型处理和拥有权320
13.2.2数据类型的转换321
13.2.3使用C++属性323
13.2.4使用函数和槽327
13.2.5使用信号328
13.3注册QML类型329
13.3.1注册可实例化对象类型329
13.3.2注册不可实例化对象类型330
13.3.3注册单例类型330
13.3.4类型的修订和版本331
13.4定义QML特定类型和属性332
13.4.1提供附加对象注解数据332
13.4.2属性修饰符类型335
13.4.3指定QML对象类型的默认属性337
13.4.4接收对象初始化通知337
13.5在C++中使用QML对象338
13.5.1使用C++加载QML对象338
13.5.2使用对象名字访问加载的QML对象339
13.5.3使用C++访问QML对象成员340
13.6小结343
第14章使用Qt Quick设计器344
14.1常用操作介绍345
14.1.1管理项目层次345
14.1.2QML类型库346
14.1.3指定项目属性347
14.1.4添加状态349
14.1.5在画布上操作QML类型349
14.2使用设计器编辑QML文档351
14.2.1创建项目351
14.2.2创建主视图351
14.2.3添加视图355
14.2.4为视图添加动画356
14.3小结358
附录AQt 版本介绍359
附录BQt 5中C++ API更改361
附录CQML常用术语371
参考文献373
|
|