为什么写作《Qt Quick核心编程》

我的第二本书《Qt Quick 核心编程》上市了,各个网站的预售链接已经上线:

淘宝惊喜价

china-pub

京东

亚马逊

本书的前言:

今年(2014年)4月份,我开始写作《Qt on Android核心编程》,该书主要讲述Qt on Android的核心技术,比如信号与槽、元对象系统、Qt与Android的衔接、Android相关的开发主题等,对于界面开发,还是基于Qt传统的Widgets。

在写作的过程中,不断有技术同仁向我咨询Qt Quick的问题,有诸如对象如何声明、怎样定义函数等入门级的问题,也有QML与C++如何交互、如何定制ListView等进阶问题……于是我想,为什么大家关注Qt Quick与QML?结论很简单,正如Qt Quick的名字一样,用它来开发界面,真是飞一般的感觉;更让人快感迭起的是,Qt Quick里的绝大多数界面元素,都可以定制,都是任人装扮的小姑娘,甚至还可以从头开始快速构建专属于你的界面组件;还有顶顶重要的是,QML与Qt C++的完美结合为开发者带来了无与伦比的灵活性。

但是限于篇幅,这些精彩不能够在《Qt on Android核心编程》一书中介绍。于是我决定另写一本专门讲述Qt Quick的书籍,而且定位在入门层面,因为我本人也才入门而已。

Qt 5之后,Qt Quick与Qt Widgets并驾齐驱,成为Qt界面技术的双飞翼。而介绍Qt Quick本身的技术资料、书籍却少之又少。搜遍互联网,也很难找到系统介绍Qt Quick的文章,多数是开发者使用某个主题后的片段记录与日志。即使这些宝贵的经验片段,也因为Qt Quick版本的问题而不一定能够正常使用。更可惜的是,Qt Quick适用于Android等移动平台,而这方面的资料和实践,却更加芳踪难觅。所有这一切,既给我的学习增加了困难,也坚定了我写一本Qt Quick入门书籍的决心。

做出这个决定的过程也颇为艰难,因为写作《Qt on Android核心编程》给我和家人的生活带来了非常大的影响。独自完成一本书是一项非常浩大的工程,工作量不说,所花心思是极多极难量化的:你会担心选取的主题、角度是否合适,你提供的示例不仅要在语法和运行层面上正确,还要思量它是否能恰到好处地演示你讲解的主题……而在你念兹在兹、废寝忘食、心无旁骛、形容枯槁地琢磨着写作时,你也忽略掉了身边的老婆、孩子、亲友,你整天都在飘啊,挺奇怪的感觉,干什么事儿都是人在心不在,这样的你,对身边亲友的影响可想而知。我刚刚从这种状态中出来,还未及好好地放松几天,就又决定重开炉灶,锻铸新兵,对于我的老婆、孩子,都是很难启口之事。可是我又担心一旦放下当前火热的念头,哪天想重新来过时,却激情不再冷灰难燃。于是我偷偷地开始了这项工作,直到进行了将近一半时,才告诉老婆,相信她能理解,而她也确实理解并支持我,她是我最该感谢的人。

写作本书的过程,也是我学习的过程,书中多数章节都来源于我在自学时记录的笔记和完成的示例。对于我遇到的困惑,对于那些让我辗转反复难以理解的主题,我特意将这个主题本身、它牵涉到的其他主题、它需要的基础知识都一一记录下来,能放在一起讲解的尽量放在一起,需要独立成章的,也费尽心思安排前后顺序。可以说,这本书是我在Qt Quick这条路上练级打怪的备忘录。

每当完成一个章节、一个示例时,我都感到由衷的高兴,可也感到莫名的失落:就快要结束了……当初《Qt on Android核心编程》完稿时,我就对这种爱女远飞、空虚、落寞、失去凭借与寄托的感觉很不适应。而现在我再次经历着这一切,我其实希望这是一场没有终点的旅行,但,它不是。

我把这一切记录在这里,我想说,爱过,写过,失落过,高兴过,低徊过,迷惘过,不管怎样,我从未对那些流过的汗水、付出的精力后悔过,如果还有机会,我还愿意再这样走上一遭。

时间: 2025-01-02 17:15:24

为什么写作《Qt Quick核心编程》的相关文章

Qt Quick核心编程从入门到精通

本文是个推荐文章,推荐foruok博主的Qt quick 核心编程的系列经典编程! foruok 博主 的Qt Quick系列文章: Qt Quick 简介 QML 语言基础 Qt Quick 之 Hello World 图文详解 Qt Quick 简单教程 Qt Quick 事件处理之信号与槽 Qt Quick事件处理之鼠标.键盘.定时器 Qt Quick 事件处理之捏拉缩放与旋转 Qt Quick 组件与对象动态创建详解 Qt Quick 布局介绍 Qt Quick 之 QML 与 C++

《Qt Quick核心编程》上市了

我的第二本书<Qt Quick 核心编程>上市了,各个网站的预售链接已经上线: 淘宝惊喜价 china-pub 京东 亚马逊 我不是王婆,可有时也卖瓜:这是国内第一本专门讲述 Qt Quick 的书,系统.全面.实例丰富,值得拥有. 下面是图书封面,与<Qt on Android核心编程>同款式. 封底: 试读样章很快放出,敬请期待. 您也可点击我的Qt Quick专栏,里面很多文章都在本书中出现了. 图书目录,还请点击文前链接哦.

Qt Quick之StackView具体解释(1)

Qt Quick中有个StackView.我在<Qt Quick核心编程>一书中没有讲到.近期有人问起,趁机学习了一下,把它的基本使用方法记录下来. 我准备分两次来讲.第一次讲主要的使用方法.包含StackView的适用场景.基本属性和方法的使用方法.第二次讲一些略微复杂点的东西,比方被StackView管理的view的生命周期.delegate定制.查找等. 演示样例会用到动态创建组建,能够參考我之前的文章"Qt Quick 组件与对象动态创建具体解释".也会用到锚布局.

Qt Quick实现的疯狂算数游戏

使用 Qt Quick 写了个小游戏:疯狂算数.支持 Windows 和 Android 两个平台. 就差您这一票了亲:博客之星评选,点击投我一票,谢谢.投过了也可以点哦,每天都可以投投一票. 游戏简单,但牵涉到下面你的 Qt Quick 主题: 自己实现一个按钮 自适应分辨率 国际化 QML与C++混合编程 APK图标设置 APK名称汉化 动画 其实所有这些内容,在我的书<Qt Quick核心编程>里都讲到了,感兴趣的朋友可以看我的书. 大概来看一下吧,先看效果. Android 手机运行效

Qt Quick之StackView详解(2)

在"StackView详解(1)"中,我们学习了StackView的基本用法,这次呢,我们来讲delegate的定制.被管理的View的生命周期.查找View等主题. 本文还会用到"StackView详解(1)"中的示例,如有需要可以回头看看. 附加属性 首先看看StackView提供的附加属性 Stack(后面会用到): Stack.index,index代表当前Item在StackView里的索引,从0开始哦,和StackView.depth不同哦,depth从

Qt Quick之StackView详解(1)

Qt Quick中有个StackView,我在<Qt Quick核心编程>一书中没有讲到,最近有人问起,趁机学习了一下,把它的基本用法记录下来. 我准备分两次来讲.第一次讲基本的用法,包括StackView的适用场景.基本属性和方法的用法.第二次讲一些稍微复杂点的东西,比如被StackView管理的view的生命周期.delegate定制.查找等. 示例会用到动态创建组建,可以参考我之前的文章"Qt Quick 组件与对象动态创建详解".也会用到锚布局,参考"Qt

Qt Quick 多媒体 - 播放音乐和视频

MediaPlayer 是 QML 提供的核心多媒体类,可以播放音频.视频.要使用 MediaPlayer,需要引入 QtMultimedia 模块,在 QML 文档的开始加入 "import QtMultimedia 5.0" 语句.QML 中的 MediaPlayer 是 Qt C++ 中的多媒体框架在 QML 环境中的代言人,假如以 Qt QuickApp 为模板创建项目,你还需要在 pro 文件中加入语句:QT += multimedia. 一.播放音乐 先看最简单的播放音乐的

qml-main.cpp中的两种启动Qt Quick App模式

 现有两种启动Qt Quick App 模式: QQmlApplicationEngine搭配Window. QQuickView搭配Item.  qt默认使用第一种方法. QQmlApplicationEngine搭配Window: 1 #include <QGuiApplication> 2 #include <QQmlApplicationEngine> 3 4 int main(int argc, char *argv[]) 5 { 6 #if defined(Q_OS_W

Qt Quick编程(1)——QML的核心部分ECMAScript

说道QML,不得不先说一下ECMAScript: ECMAScript语言的标准是由Netscape.Sun.微软.Borland等公司基于JavaScript和JScript锤炼.定义出来的. ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力.ECMAScript仅仅是一个描述,定义了脚本语言的所有属性.方法和对象.它描述了一下内容: 语法 类型 语句 关键字 保留字 运算符 对象 其他语言可以以它为基础拓展出新特性,比如QML引入了Qt对象系统中的信号与槽等特色功能. QM