第1章 Qt Quick概览 1
1.1 什么是Qt Quick 1
1.2 我们能用Qt Quick做什么 2
第2章 Qt开发环境快速上手 3
2.1 Qt Creator简介 3
2.2 Qt Creator下载与安装 3
2.2.1 下载 3
2.2.2 安装 4
2.3 Hello Qt Quick App 8
2.3.1 创建项目 8
2.3.2 运行项目 11
2.3.3 在手机上运行 12
2.4 Qt Creator集成开发环境 15
2.4.1 欢迎界面 15
2.4.2 编辑界面 18
2.4.3 调试界面 19
2.4.4 项目选项设置 20
2.5 善用佳软之Qt Quick开发工具 21
2.5.1 Qt帮助 21
2.5.2 Qt Quick Designer 24
2.5.3 命令行环境 25
2.5.4 qmlscene 26
第3章 QML语言基础 28
3.1 对象 28
3.2 表达式 29
3.3 注释 30
3.4 属性 31
3.4.1 属性命名 31
3.4.2 属性的类型 31
第4章 Qt Quick入门 35
4.1 Hello Qt Quick App再分析 35
4.1.1 基本程序结构 35
4.1.2 使用Item作为QML根对象 37
4.2 闲话Window 38
4.2.1 Window细说 38
4.2.2 ApplicationWindow 40
4.3 基本元素初体验 40
4.3.1 Rectangle 40
4.3.2 颜色 41
4.3.3 渐变色 41
4.3.4 Item 42
4.3.5 使用锚布局 44
4.3.6 响应按键 46
4.3.7 Text 47
4.3.8 Button 50
4.3.9 ButtonStyle 51
4.3.10 Image 52
4.3.11 BusyIndicator 55
4.4 图片浏览器的第一个版本 55
4.4.1 QML代码 56
4.4.2 FileDialog 58
第5章 ECMAScript初探 59
5.1 语法 60
5.1.1 区分大小写 60
5.1.2 弱类型 60
5.1.3 语句后的分号可有可无 61
5.1.4 注释 61
5.1.5 代码块 61
5.2 变量 61
5.2.1 变量声明 61
5.2.2 变量命名规则 62
5.2.3 关键字 62
5.2.4 保留字 63
5.2.5 原始值与引用值 64
5.3 原始类型 64
5.3.1 typeof运算符 64
5.3.2 Undefined类型 65
5.3.3 Null类型 65
5.3.4 Boolean类型 66
5.3.5 Number类型 66
5.3.6 String类型 67
5.4 类型转换 67
5.4.1 转换成字符串 68
5.4.2 转换成数字 68
5.4.3 强制类型转换 69
5.5 对象 70
5.5.1 Object 70
5.5.2 String 72
5.5.3 RegExp 75
5.5.4 Array 78
5.5.5 Math 80
5.5.6 Date 81
5.5.7 你不可不知的对象碎碎念 83
5.6 函数 84
5.6.1 函数语法 84
5.6.2 函数的返回值 85
5.7 表达式和运算符 85
5.7.1 表达式 85
5.7.2 算术运算符 86
5.7.3 赋值运算符 86
5.7.4 比较和逻辑运算符 87
5.7.5 条件运算符 88
5.7.6 位运算符 88
5.7.7 关键字运算符 88
5.7.8 逗号运算符 89
5.7.9 数组和对象存取运算符 89
5.7.10 优先级 89
5.8 程序控制语句 90
5.8.1 if-else语句 90
5.8.2 switch语句 90
5.8.3 for语句 91
5.8.4 while语句 92
5.8.5 do-while语句 92
5.8.6 break、continue和return 92
5.9 使用console 93
5.9.1 输出日志信息 93
5.9.2 断言 94
5.9.3 计时器 94
5.10 内置对象 94
5.10.1 Global对象 94
5.10.2 JSON对象 96
5.11 来自QML的基本类型 98
5.11.1 url 99
5.11.2 list 99
5.11.3 enumeration 100
5.11.4 font 100
5.12 宿主对象Qt 101
5.12.1 Qt对象的属性 101
5.12.2 Qt对象的枚举类型 102
5.12.3 Qt对象的方法 102
第6章 Qt Quick事件处理 105
6.1 Qt Quick中的信号与槽 105
6.1.1 连接QML类型的已知信号 105
6.1.2 如何寻找感兴趣的信号 109
6.1.3 定义自己的信号 115
6.1.4 信号与槽的连接 117
6.2 鼠标 119
6.2.1 变色矩形示例 119
6.2.2 MouseArea 120
6.3 键盘 121
6.3.1 会动的文本实例 121
6.3.2 Keys与信号处理器 123
6.4 定时器 124
6.4.1 定时器对象介绍 124
6.4.2 倒计时程序 124
6.5 触摸事件 126
6.5.1 PinchArea 127
6.5.2 缩放与旋转实例 128
6.5.3 多点触摸 130
第7章 组件与动态对象 133
7.1 Component(组件) 133
7.1.1 嵌入式定义组件 133
7.1.2 在单独文件中定义组件 134
7.2 使用Loader 137
7.2.1 Loader详细介绍 137
7.2.2 从文件加载组件 142
7.2.3 利用Loader动态创建与销毁组件 143
7.3 在ECMAScript中动态创建对象 146
7.3.1 从组件文件动态创建Component 146
7.3.2 从QML字符串动态创建Component 148
7.3.3 销毁动态创建的对象 149
第8章 Qt Quick元素布局 152
8.1 定位器 152
8.1.1 Row 152
8.1.2 Colomun 154
8.1.3 Grid 155
8.1.4 Flow 158
8.1.5 定位器嵌套 160
8.2 布局管理器 162
8.2.1 GridLayout 163
8.2.2 RowLayout 166
8.2.3 ColumnLayout 168
8.3 其他的布局方式 169
第9章 Qt Quick常用元素介绍 170
9.1 行编辑(TextInput与TextField) 170
9.1.1 TextInput 170
9.1.2 TextField 172
9.2 文本块(TextEdit与TextArea) 172
9.2.1 TextEdit 173
9.2.2 TextArea 173
9.3 ExclusiveGroup 174
9.4 RaidoButton 174
9.4.1 RadioButtonStyle 174
9.4.2 实例:选择你喜欢的手机操作系统 175
9.5 CheckBox 177
9.5.1 CheckBoxStyle 178
9.5.2 实例:那些你喜欢的爱情电影 178
9.6 GroupBox 180
9.7 ComboBox 182
9.7.1 ComboBoxStyle 183
9.7.2 ComboBox综合演示 183
9.8 ProgressBar 187
9.8.1 ProgressBarStyle 187
9.8.2 进度条综合演示 188
9.9 TabView 191
9.9.1 标签控件简单示例 192
9.9.2 使用TabViewStyle 193
9.10 Slider 196
9.10.1 SliderStyle 197
9.10.2 滑块简单示例 197
9.11 Flickable 199
9.12 Screen对象 200
第10章 Canvas(画布) 202
10.1 开始之前 202
10.1.1 画布 202
10.1.2 画师 203
10.1.3 画笔 203
10.1.4 画刷 203
10.1.5 坐标系 203
10.1.6 图元 204
10.2 基本绘图模式 204
10.3 绘制路径 206
10.4 绘制文本 209
10.5 绘制图片 211
10.6 变换 215
10.7 裁切 219
10.8 图像合成 220
10.9 挖头像实例 221
10.9.1 项目创建 221
10.9.2 C++代码 222
10.9.3 QML代码分析 223
第11章 C++与QML混合编程 228
11.1 在QML中使用C++类和对象 229
11.1.1 定义可以导出的C++类 229
11.1.2 注册一个QML可用的类型 235
11.1.3 完整的ColorMaker实例 237
11.1.4 将一个C++对象导出为QML属性 239
11.2 在C++中使用QML对象 242
11.2.1 查找一个对象的孩子 243
11.2.2 使用元对象调用QML对象的方法 243
11.2.3 callQml示例 244
11.3 美图实例 248
11.3.1 美图实例效果 248
11.3.2 图像处理算法 250
11.3.3 源码情景分析 256
第12章 动画 264
12.1 动画元素分类 264
12.2 基本动画元素 265
12.2.1 Animation 265
12.2.2 PropertyAnimation 266
12.2.3 NumberAnimation 270
12.2.4 ColorAnimation 273
12.2.5 RotationAnimation 273
12.2.6 PathAnimation 275
12.2.7 SmoothedAnimation 278
12.2.8 SpringAnimation 279
12.3 组合动画 280
12.3.1 ParallelAnimation 280
12.3.2 SequentialAnimation 281
12.4 State 283
12.4.1 使用State变换文本的小示例 283
12.4.2 State详解 284
12.4.3 PropertyChanges 286
12.4.4 ParentChange 289
12.4.5 AnchorChanges 292
12.4.6 StateChangeScript 294
12.5 Transition 296
12.6 协同动画元素 302
12.6.1 Behavior 303
12.6.2 ParentAnimation 304
12.6.3 AnchorAnimation 305
12.7 实例:射泡泡游戏 306
12.7.1 游戏介绍 307
12.7.2 源码情景分析 310
第13章 Model/View 318
13.1 ListView 319
13.1.1 ListView的简单使用 319
13.1.2 header 323
13.1.3 footer 326
13.1.4 访问与修改Model 330
13.1.5 动画效果 336
13.1.6 section 343
13.2 XmlListModel的用法 347
13.2.1 XPath简介 347
13.2.2 XmlRole 349
13.2.3 XmlListModel的属性与方法 349
13.3 使用C++ Model 354
13.3.1 C++实现QML可用的Model 354
13.3.2 将Model导出到QML中 359
13.3.3 QML代码的变化 360
13.4 TableView 362
13.4.1 一个简单的TableView实例 362
13.4.2 定制表格外观 364
13.4.3 动态修改TableView 368
13.5 实例:股票跟踪 368
13.5.1 你的样子 369
13.5.2 项目创建 370
13.5.3 main.cpp分析 372
13.5.4 TableView外观定制 373
13.5.5 QML与C++混合应用的国际化 375
13.5.6 Qt on Android应用国际化 376
13.6 GridView 377
13.7 PathView 379
13.7.1 Path简介 380
13.7.2 PathAttribute 385
13.7.3 PathPercent 386
13.7.4 使用PathView 386
13.8 找图看实例 390
13.8.1 功能与界面 390
13.8.2 QML多界面切换 392
13.8.3 创建自己的QML按钮 394
13.8.4 本地浏览 395
13.8.5 网络图片搜索 399
13.9 Repeater 400
13.9.1 model为数字 400
13.9.2 model为字符串列表 401
13.9.3 model为对象列表 402
13.9.4 model为ListModel 403
13.10 ListView的下拉刷新效果 405
13.10.1 C++ Model 405
13.10.2 QML代码分析 408
第14章 多媒体 410
14.1 MediaPlayer 410
14.1.1 播放音乐 410
14.1.2 视频 413
14.1.3 多媒体元信息 414
14.2 拍照 415
14.2.1 配置Camera 415
14.2.2 设置取景器VideoOutput 418
14.2.3 捕获静态图片 419
14.2.4 简单的拍照实例 419
第15章 网络 426
15.1 大珠小珠落玉盘——支持网络的对象 426
15.1.1 Image 426
15.1.2 Qt.createComponent 426
15.1.3 Loader对象 427
15.1.4 QQmlApplicationEngine 427
15.1.5 QQuickView 427
15.1.6 MediaPlayer 428
15.2 QML里的HTTP 428
15.2.1 XMLHttpRequest类介绍 428
15.2.2 GET小示例 430
15.2.3 POST数据 433
15.3 使用C++代码完成复杂的网络操作 433
第16章 定位 435
16.1 类库介绍 435
16.1.1 coordinate 435
16.1.2 QtPositioning 436
16.1.3 Position 436
16.1.4 PositionSource 436
16.2 团购查询实例 437
16.2.1 百度API说明 437
16.2.2 手机运行效果 438
16.2.3 源码分析 439
第17章 综合实例之文件查看器 443
17.1 文件查看器的运行效果 444
17.2 再论ApplicationWindow 445
17.3 MenuBar 447
17.3.1 Menu 447
17.3.2 MenuItem 448
17.3.3 Action 448
17.4 ToolBar 449
17.5 使用XMLHttpRequest加载本地文件 450
17.6 使用标准对话框 450
17.6.1 ColorDialog 451
17.6.2 MessageDialog 452
17.7 源码分析 453
17.7.1 QML代码 453
17.7.2 C++代码 461
17.7.3 项目文件 461
第18章 综合实例之聊哈 462
18.1 界面效果 462
18.2 分析 465
18.2.1 适应多种分辨率 465
18.2.2 聊天界面实现分析 469
18.2.3 录音与回放 471
18.2.4 聊天协议 475
18.2.5 MessengerManager 485
18.2.6 AccessPointModel 486
附录A 常见问题 487
该怎么学习Qt Quick 487
如何发布Qt Quick应用 487
怎样保持Android手机屏幕常亮 489
我想创建可扩展的UI来适应各种屏幕 489
Qt Quick应用如何国际化 490
Qt Quick应用体积太大了啊 490
有没有静态库版本的Qt 490
我不想让别人看见我的QML文档 490
Android上的Qt Quick控件看起来和系统风格不一样 490
自己做一些Qt Quick控件怎么样 491
Qt Quick不支持文件操作吗 491
想用数据库来着…… 491
说真的,本书示例代码在哪儿可以下载 491
参考文献 492
聊聊写作期间听的音乐 493
· · · · · · (
收起)