2014年3月22日星期六

开始学习Qt

春节之后的周末,又是一通瞎忙,好久没有踏下心的看书学习了。今日终得闲,加上最近几日工作中受到的刺激,感觉还是要继续战斗才好,随时做好新起航的准备。

按照之前想的那么多,又想重温设计模式和重构,又想学习Qt,又想学一些自动化测试,想学的太多,反倒出现了选择困难和厌学情绪。思考之后,决定先学Qt,然后写一个简单的程序来实现所有的设计模式,做这个程序的过程中估计重构和测试也就都能设计到了。

Qt如今已经发布了5.2.1,并且可以支持iOS和android开发(不过对移动软件的开发相信很难真的有实际的实践意义,原生开发工具已经足够好了,看不到任何去学这个的必要,当然这肯定是后话了),国内网站中对Qt的讨论主要还是集中在Qt4,毕竟对于公司开发的话不可能果断的舍弃旧的代码用新的框架重构,不过对于我个人兴趣式的学习,我还是决定学习最新的版本,从Qt5直接入手。

在网上的搜索过程中,找到了一位大牛的博客DEVBEAN' S WORLD,在他的博客中,专门有一个单元叫Qt学习之路2。这位大牛以前也写过一个学习教程是Qt学习之路,当时是针对Qt4写的,如今他将自己曾经的所有博客针对Qt5进行了重新整理,放在网上供大家学习,对他这种精神真的是佩服的五体投地啊。

今天先学习了前六篇教程,对Qt有了个初步的了解,尤其是对信号槽(slot)这个概念有了个直观的概念。以下摘抄自该教程第四节,Qt 学习之路 2(4):信号槽
所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。(这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。)
有这么好的教程网站,之后要加快学习的脚步才好。