猜你喜欢
Qt 5编程入门(第2版)

Qt 5编程入门(第2版)

书籍作者:霍亚飞 ISBN:9787512431119
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:10043
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是基于Qt 5.12的QML和Qt Quick入门书籍,详细介绍了QML语言的语法和编写Qt Quick程序需要用到的基本知识点。本书内容主要包括Qt 5的介绍、QML语法、Qt Quick基础知识以及在图形动画、数据处理、多媒体和移动开发方面的应用等。与第1版相比,本书使用Qt 5.12.0和Qt Creator 4.8.0进行了全书修订,主要添加了图表、3D可视化、移动开发等章节;对其他章节内容进行了大量更新,重写了Qt Quick控件、设计器、与C++进行集成等章节,从而帮助初学者快速入门Qt Quick编程。


编辑推荐

本书是经典的Qt应用编程系列丛书继《Qt Creator快速入门(第3版)》和《精解》之后的又一力作,是市面上为数不多的全面介绍QML和Qt Quick的入门书籍。与其他相关书籍最大的不同之处还包括,本书是基于网络教程的。综合来说,本书主要具有以下特色:

本书基于新的Qt 5.12.0和Qt Creator 4.8.0版本进行编写,Qt 5.12.0是Qt 5新的长期支持版本。

基于社区。本书以Qt开源社区(qter.org)为依托,由社区站长合作完成。读者可以通过论坛、邮件、QQ群等方式和作者零距离交流。

持续更新。本书对应的网络教程是持续更新的,本书已经是该网络教程衍生的第三本书了。

全新风格。本书力求以全新的视角,引领开发者进行程序代码的编写和升级,同时以初学者的角度进行叙述,每个小知识点都以一个完整的程序来讲解。尽量避免晦涩难懂的术语,使用初学者易于理解的平白的语言编写,目标是让初学者在快乐中掌握知识。

授之以渔。在整书的编写过程中,都是在向读者传授一种学习方法,告诉读者怎样发现问题、解决问题,怎样获取知识,而不是向读者灌输知识。本书的编写基于Qt参考文档,所讲解的知识点多数是Qt参考文档中的部分内容,大家在学习时一定要多参考Qt帮助文档。在本套书籍讲解的所有知识点和示例程序中,都很明显地标出了其在Qt帮助中对应的关键字,从而让读者对书中的内容有迹可循。


目录

第1章走进Qt Quick的世界1

1.1全新的QML和Qt Quick1

1.1.1历史变迁1

1.1.2QML2

1.1.3Qt Quick2

1.1.4Qt QML和Qt Quick框架3

1.2Qt Quick项目4

1.2.1Qt 5的下载与安装4

1.2.2创建Qt Quick应用6

1.2.3创建Qt Quick UI项目11

1.2.4运行示例程序13

1.2.5Qt Quick程序的发布14

1.3小结16

第2章QML语法17

2.1QML语法基础17

2.2import导入语句20

2.2.1模块(命名空间)导入语句20

2.2.2目录导入语句21

2.2.3JavaScript资源导入语句23

2.3QML类型系统24

2.3.1基本类型24

2.3.2JavaScript类型26

2.3.3对象类型26

2.4对象特性26

2.4.1id特性27

2.4.2属性特性28

2.4.3信号和信号处理器特性36

2.4.4方法特性40

2.4.5附加属性和附加信号处理器41

2.4.6枚举43

2.5集成JavaScript43

2.5.1JavaScript表达式43

2.5.2从JavaScript动态创建QML对象49

2.5.3在QML中定义JavaScript资源53

2.5.4在QML中导入JavaScript资源56

2.5.5JavaScript宿主环境58

2.6QML文档59

2.6.1通过QML文档定义对象类型60

2.6.2QML组件62

2.6.3作用域和命名解析64

2.6.4资源加载和网络透明性70

2.6.5QML的国际化71

2.6.6QML的编码约定75

2.7QML模块78

2.7.1定义一个QML模块78

2.7.2支持的QML模块类型79

2.8小结79

第3章Qt Quick基础80

3.1基础可视项目81

3.1.1Item81

3.1.2Rectangle85

3.1.3Text85

3.1.4TextInput92

3.1.5TextEdit97

3.2布局管理99

3.2.1定位器99

3.2.2基于锚的布局103

3.2.3Layouts106

3.3事件处理110

3.3.1MouseArea110

3.3.2鼠标事件和滚轮事件112

3.3.3拖放事件114

3.3.4键盘事件和焦点作用域117

3.3.5定时器123

3.4使用Loader动态加载组件124

3.4.1Loader的大小与行为124

3.4.2从加载的项目中接收信号125

3.4.3焦点和键盘事件126

3.5小结127

第4章Qt Quick控件128

4.1Qt Quick控件基础129

4.2按钮类控件139

4.2.1AbstractButton139

4.2.2Button141

4.2.3CheckBox142

4.2.4RadioButton144

4.2.5ButtonGroup145

4.2.6RoundButton146

4.2.7Switch147

4.2.8DelayButton148

4.2.9Action和ActionGroup149

4.3指示类控件151

4.3.1Label151

4.3.2ProgressBar151

4.3.3BusyIndicator152

4.3.4PageIndicator153

4.4输入类控件154

4.4.1TextField154

4.4.2TextArea155

4.4.3ComboBox156

4.4.4SpinBox159

4.4.5Dial162

4.4.6Slider163

4.4.7RangeSlider165

4.4.8Tumbler166

4.5菜单类控件167

4.5.1Menu167

4.5.2MenuBar171

4.6容器类控件173

4.6.1Pane173

4.6.2Frame174

4.6.3GroupBox174

4.6.4Page175

4.6.5ScrollView176

4.6.6ScrollBar和ScrollIndicator178

4.6.7StackView180

4.6.8TabBar185

4.6.9ToolBar187

4.6.10SwipeView188

4.7弹出类控件190

4.7.1Overlay190

4.7.2Popup191

4.7.3Dialog194

4.7.4ToolTip195

4.7.5Drawer196

4.8标准对话框197

4.8.1ColorDialog197

4.8.2FileDialog198

4.8.3FontDialog199

4.8.4MessageDialog200

4.9Qt Quick Controls 2配置文件202

4.10共享业务逻辑代码202

4.10.1图片查看器203

4.10.2文件选择器207

4.10.3重构图片选择器207

4.11小结212

第5章图形动画基础213

5.1颜色、渐变和调色板213

5.1.1颜色213

5.1.2渐变216

5.1.3系统调色板216

5.2图片、边界图片和动态图片217

5.2.1图片217

5.2.2边界图片219

5.2.3动态图片221

5.3缩放、旋转和平移变换221

5.3.1使用属性实现简单变换221

5.3.2使用Transform实现高级变换223

5.4状态224

5.4.1创建状态225

5.4.2默认状态和when属性226

5.5动画和过渡227

5.5.1使用属性动画227

5.5.2使用预定义的目标和属性229

5.5.3在状态改变时使用过渡230

5.5.4使用默认的行为动画231

5.5.5使用并行或顺序动画组232

5.5.6使用动画师动画233

5.5.7控制动画的执行234

5.5.8共享动画实例235

5.6精灵动画236

5.6.1精灵引擎介绍236

5.6.2AnimatedSprite240

5.7Flickable和Flipable241

5.7.1弹动效果241

5.7.2翻转效果243

5.8小结244

第6章图形效果245

6.1混合效果245

6.2颜色效果248

6.3渐变效果251

6.3.1锥形渐变251

6.3.2线性渐变252

6.3.3辐射渐变253

6.4变形效果254

6.5阴影效果255

6.5.1投影255

6.5.2内阴影256

6.6模糊效果257

6.6.1快速模糊257

6.6.2高斯模糊258

6.6.3递归模糊259

6.6.4遮罩模糊260

6.7动感模糊效果261

6.7.1方向模糊261

6.7.2径向模糊262

6.7.3缩放模糊263

6.8发光效果263

6.8.1发光263

6.8.2矩形发光264

6.9遮罩效果266

6.9.1不透明遮罩266

6.9.2阈值遮罩267

6.10小结268

第7章粒子系统269

7.1ParticleSystem269

7.2发射器271

7.3渲染器272

7.4TrailEmitter275

7.5粒子组276

7.6随机参数278

7.7影响器279

7.7.1Age279

7.7.2Attractor280

7.7.3Friction281

7.7.4Gravity281

7.7.5Turbulence282

7.7.6Wander282

7.7.7GroupGoal282

7.7.8SpriteGoal283

7.8小结284

第8章Canvas 2D285

8.1Canvas的使用285

8.2绘制操作287

8.2.1绘制参数设置288

8.2.2绘制矩形290

8.2.3状态的保存与恢复291

8.2.4绘制文本293

8.2.5绘制路径294

8.3渐变填充299

8.3.1线性渐变299

8.3.2辐射渐变300

8.3.3锥型渐变301

8.4阴影301

8.5使用图像302

8.6坐标变换304

8.6.1平移305

8.6.2缩放305

8.6.3旋转306

8.6.4斜切307

8.6.5transform()函数总结308

8.7小结309

第9章模型和视图310

9.1模型/视图架构简介310

9.2数据模型312

9.2.1整数作为模型312

9.2.2ListModel313

9.2.3WorkerScript315

9.2.4ObjectModel316

9.2.5DelegateModel317

9.2.6Package319

9.2.7XmlListModel320

9.2.8LocalStorage322

9.2.9使用C++扩展QML模型326

9.3视图类型330

9.3.1ListView330

9.3.2GridView336

9.3.3视图过渡338

9.3.4PathView341

9.4调整性能344

9.5小结345

第10章Qt图表346

10.1创建一个图表项目347

10.2坐标轴Axes348

10.2.1数值坐标轴和对数数值坐标轴349

10.2.2分类坐标轴350

10.2.3柱形图分类坐标轴351

10.2.4日期时间坐标轴352

10.2.5坐标轴的共有属性354

10.3图例Legend354

10.4ChartView356

10.4.1设置主题357

10.4.2启用动画358

10.5使用外部数据动态创建图表359

10.6常用图表类型362

10.6.1折线图、曲线图和散点图362

10.6.2面积图364

10.6.3柱形图、堆积柱形图、百分比堆积柱形图365

10.6.4饼状图366

10.6.5盒须图(箱形图)367

10.6.6蜡烛图(K线图)368

10.6.7极坐标图369

10.7小结371

第11章Qt Data Visualization数据可视化372

11.13D柱形图372

11.1.13D坐标轴375

11.1.2数据代理377

11.1.33D系列380

11.2自定义3D场景381

11.3设置主题382

11.4选择模式和切片视图385

11.53D散点图387

11.63D曲面图389

11.7小结391

第12章多媒体应用392

12.1多媒体模块介绍392

12.2播放音频393

12.2.1播放压缩音频393

12.2.2播放未压缩音频395

12.3播放视频396

12.3.1使用Video播放视频文件396

12.3.2对视频使用图形效果397

12.4媒体播放器399

12.4.1播放音视频399

12.4.2使用Windows平台附加功能400

12.5小结406

第13章QML与C++的集成407

13.1快速选择正确的集成方式408

13.2QML运行时的C++类411

13.2.1QQmlEngine411

13.2.2QQmlContext412

13.2.3QQmlComponent414

13.2.4QQmlExpression415

13.3在QML中使用C++特性416

13.3.1数据类型处理和拥有权416

13.3.2数据类型的转换416

13.3.3使用C++属性419

13.3.4使用函数和槽423

13.3.5使用信号425

13.4注册QML类型426

13.4.1注册可实例化对象类型426

13.4.2注册不可实例化对象类型427

13.4.3注册单例类型427

13.4.4类型的修订和版本428

13.5定义QML特定类型和属性429

13.5.1提供附加对象注解数据429

13.5.2属性修饰符类型432

13.5.3指定QML对象类型的默认属性434

13.5.4接收对象初始化通知435

13.6在C++中使用QML对象436

13.6.1使用C++加载QML对象436

13.6.2使用对象名字访问加载的QML对象438

13.6.3使用C++访问QML对象成员439

13.7小结442

第14章使用Qt Quick设计器443

14.1Qt Quick UI表单文件444

14.2常用操作448

14.2.1管理项目层次448

14.2.2QML类型库449

14.2.3指定项目属性449

14.2.4添加状态452

14.2.5在画布上操作QML类型452

14.3使用设计器编辑QML文档457

14.3.1创建项目457

14.3.2创建主视图458

14.3.3添加视图461

14.3.4为视图添加动画462

14.4小结464

第15章Qt移动开发入门465

15.1Qt Android开发配置465

15.1.1工具软件的下载465

15.1.2工具软件的安装466

15.1.3使用虚拟机运行Qt Android程序468

15.1.4使用手机运行Qt Android程序471

15.1.5发布项目472

15.2Qt iOS开发配置476

15.2.1使用模拟器运行Qt iOS程序477

15.2.2使用手机运行Qt iOS程序478

15.3创建演示程序481

15.3.1创建应用主窗口481

15.3.2拍照功能486

15.3.3多点触控488

15.3.4传感器489

15.3.5地图491

15.3.6蓝牙493

15.4小结496

参考文献497


产品特色