第1章Qt概览1
1.1什么是Qt1
1.2我们能用Qt做什么1
1.3谁在使用Qt1
1.4什么是QtonAndroid2
1.5QtonAndroid的前世今生2
第2章Qt开发环境快速上手6
2.1QtCreator简介6
2.2QtCreator下载与安装7
2.2.1下载7
2.2.2安装7
2.3创建第一个项目:HelloWorld9
2.4QtCreator集成开发环境介绍13
2.4.1欢迎界面13
2.4.2编辑界面15
2.4.3调试界面17
2.4.4项目选项设置17
2.4.5菜单简介19
2.4.6QtCreator的选项配置21
2.4.7项目模板介绍22
2.5Qt开发工具介绍24
2.5.1Assistant24
2.5.2Designer28
2.5.3Linguist29
2.5.4命令行环境30
第3章QtonAndroid快速上手32
3.1开发环境搭建32
3.1.1JDK安装32
3.1.2环境变量设置34
3.1.3AndroidSDK安装36
3.1.4AndroidNDK安装41
3.1.5ApacheAnt安装41
3.1.6QtCreator的Android环境配置42
3.1.7AVD创建44
3.1.8连接你的手机46
3.2HelloQtonAndroid47
3.2.1创建项目47
3.2.2项目选项50
3.2.3创建密钥文件和证书53
3.2.4创建AndroidManifest.xml55
3.2.5添加代码53
3.2.6运行程序55
3.3Qt库的部署策略57
3.3.1UseMinistroservicetoinstallQt58
3.3.2BundleQtlibsinAPK59
3.3.3DeploylocalQtlibrariestotemporarydirectory60
3.4日志62
3.4.1为什么要有日志63
3.4.2在Qt中如何使用日志63
3.4.3如何把日志输出到Android日志系统中64
第4章Qt项目文件介绍67
4.1pro文件介绍67
4.1.1注释68
4.1.2组件选择68
4.1.3目标文件名68
4.1.4模板69
4.1.5指定源文件69
4.1.6指定头文件70
4.1.7设置头文件路径70
4.1.8指定库与库文件路径70
4.1.9定义宏70
4.1.10配置信息71
4.1.11代码块与条件测试72
4.1.12变量74
4.2pro.user文件75
4.3pri文件75
4.4Makefile75
第5章Qt入门76
5.1HelloWorld再分析76
5.2QuitApp:带交互的小程序77
5.3初识信号与槽79
5.4构建复杂界面80
5.4.1盖洛普Q12测评程序80
5.4.2创建自己的槽85
5.4.3布局管理器介绍85
5.4.4控件回顾88
5.5追随Qt的代码风格91
第6章元对象系统92
6.1牡丹花示例93
6.2再论编译过程95
6.3Q_OBJECT宏96
6.4QMetaObject97
6.5关键字signals、slots、emit、SIGNAL、SLOT97
6.5.1signals97
6.5.2emit98
6.5.3slots98
6.5.4SIGNAL98
6.5.5SLOT98
6.6moc的魔法99
6.6.1moc_peony.cpp的源码99
6.6.2moc的工作清单101
6.6.3信号的真容101
6.6.4信号与槽的约会102
6.7深入理解信号与槽107
6.7.1信号与槽原理107
6.7.2如何使用信号与槽108
6.7.3信号与槽的连接类型109
6.7.4信号与槽经验谈110
6.7.5跨线程使用信号与槽110
6.8属性系统114
6.8.1静态属性114
6.8.2动态(运行时)属性117
6.9事件和事件过滤器118
6.9.1重写event()119
6.9.2重写特定事件处理器120
6.9.3事件过滤器120
6.9.4自定义事件122
6.10定时器事件124
6.10.1使用QTimer125
6.10.2使用QObject::startTimer125
6.11对象树与生命周期126
6.12智能指针131
6.12.1QPointer131
6.12.2QSharedPointer132
6.12.3QWeakPointer133
6.12.4QScopedPointer134
6.12.5QObjectCleanupHandler135
6.13动态类型转换136
6.14国际化136
6.14.1字符串国际化方法137
6.14.2创建译本138
6.14.3装载译文文件138
6.14.4运行时改变语言138
第7章Qt模板库介绍140
7.1使用QString140
7.1.1初始化一个字符串141
7.1.2操作字符串数据141
7.1.3字符串查询142
7.1.4编码转换142
7.1.5格式化输出143
7.2容器类143
7.2.1QList示例144
7.2.2QMap示例146
第8章QtGui编程148
8.1智能手机Gui特点148
8.2内建窗口控件介绍149
8.2.1QRadioButton149
8.2.2QCheckBox150
8.2.3QGroupBox150
8.2.4QLineEdit152
8.2.5QTextEdit153
8.2.6QTabWidget154
8.2.7QListWidget155
8.2.8Qt资源文件系统158
8.2.9QTableWidget160
8.3自定义窗口部件166
8.3.1使用QPainter绘图166
8.3.2为Android实现的ImageButton167
8.3.3文字渐变标签169
第9章多线程174
9.1上路吧,线程174
9.2线程自己的事件循环176
9.3岂能老死不相往来――线程间通信177
9.3.1跨线程的信号与槽177
9.3.2跨线程的事件178
9.3.3门铃示例程序178
9.4线程同步182
9.5使用QThread的注意事项184
9.6QThreadPool184
9.7高阶多线程API:QtConcurrent185
第10章网络编程189
10.1QNetworkAccessManager189
10.1.1http编程190
10.1.2ftp编程198
10.2QTcpSocket/QTcpServer201
10.2.1服务器203
10.2.2客户端205
10.3QUdpSocket207
10.3.1服务器207
10.3.2客户端209
第11章文件IO211
11.1QFile211
11.2QTextStream214
11.3QDataStream215
第12章XML217
12.1XML读取与解析217
12.1.1DOM218
12.1.2SAX219
12.1.3StAX223
12.2XML档生成与保存226
12.2.1QXmlStreamWriter226
12.2.2QDomNode::save()227
12.2.3疯狂原始人的方式228
第13章QtonAndroid揭秘229
13.1APK是怎样炼成的229
13.1.1当你“运行”时230
13.1.2Android项目目录结构232
13.1.3string.xml介绍233
13.1.4AndroidManifest.xml介绍233
13.1.5libs.xml介绍238
13.1.6Androiddeployqt.exe都干了什么239
13.2Java与Qt的结合过程242
13.2.1应用入口242
13.2.2通信代理245
13.2.3QPA插件248
13.3Qt应用的状态252
第14章Android移动开发主题253
14.1按键处理253
14.1.1重写keyPressEvent/keyReleaseEvent254
14.1.2给子控件安装事件过滤器255
14.1.3应用级别的事件过滤器256
14.2触摸与手势258
14.2.1触摸258
14.2.2手势263
14.3传感器与手势264
14.3.1常见传感器介绍264
14.3.2Qt传感器手势类库介绍268
14.3.3摇动手势268
14.3.4覆盖手势269
14.3.5自由落体269
14.3.6缠绕手势269
14.3.7翻转手势269
14.3.8煽动手势270
14.3.9传感器手势的使用270
14.4拍照271
14.4.1QCamera和它的小伙伴271
14.4.2QCameraViewFinder273
14.4.3QCameraImageCapture273
14.4.4使用相机拍照274
14.4.5在QML应用中使用相机277
14.5录音与回放278
14.5.1录音类库278
14.5.2播放类库279
14.5.3录音与回放小示例279
第15章使用JNI扩展你的应用286
15.1使用JNIEnvironment286
15.2调用Java代码287
15.2.1Java方法签名288
15.2.2调用Java方法289
15.2.3extendsQtWithJava实例291
15.2.4QtAndroid名字空间298
15.2.5使用手机外部存储298
15.3Java调用C++299
第16章纸上得来终觉浅,绝知此事要躬行305
16.1笔记qnotepad306
16.1.1首页设计与实现308
16.1.2笔记对象316
16.1.3笔记浏览与编辑318
16.2图片浏览器324
16.2.1文件选择控件324
16.2.2图片加载器335
16.2.3图片显示344
16.3IP地址查询351
16.3.1Json数据格式简介352
16.3.2Qt中的Json类库352
16.3.3程序详解353
16.4音乐播放器358
16.4.1云想衣裳花想容――Qt样式表359
16.4.2多媒体类库介绍361
16.4.3音乐播放器详解362
16.5天气预报380
16.5.1云中谁寄锦书来――GPS定位382
16.5.2天气查询与显示387
16.6拍照与后期处理396
16.6.1方寸天地纳缱绻,楚楚蕴秀薄纸间398
16.6.2图像处理算法401
16.6.3图片加载与显示410
16.6.4组织部长413
附录420
参考文献427