Tanky WooRSS

Qt demo --- 1.Screenshot

25 Mar 2011
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

最近很纠结,每天要背100多个单词,而且计算机专业课的几本书还得一天看几十面,除了数据结构外,其余三本都是小白,时间分配严重不合理,但又找不到一个十全十美的方法,最近ACM又开始废弃了,就连C++也开始淡忘了~~~真不知如何是好。

Qt也感觉到了一个瓶颈,我现在能理解为什么还有好多人学MFC了,Qt的资料和MFC的资料完全不是一个概念的,Qt的资料就我知道的只有4~5本,《C++ Gui With Qt4》是公认不把书翻烂是无法看懂的,《精通Qt4编程》是国人的一本书,想买,但是看见网上评价一般,有点打酱油的感觉,而且貌似最近出的第二版内容没变,价格却增加了20多元,真是服了~~~还有一本《The Book of Qt4:The Art of Building Qt Applications》,貌似市面上没卖的,准备去打印一本....Qt官方的白皮书《Qt White Paper》已经打印了一份看,和《C++ GUI With Qt 4》差不多,现在按照前人的经验,多多捉摸自带的demos和documents,否则真的无法理解什么是event等等~~~

今天看了Desktop下的Screenshot(全屏的屏幕截图软件),感觉很有意思,最关键的是代码简单,适合入门学习。 整体分析一下:

1.这个Screenshot继承自QWidget,由三部分组成,一个是screenshotLabel(用于显示图片),一个是optionsGroupBox(作为delaySpinBox等的框架),一个是buttonsLayout(作为new, save, quit按钮的布局)。

2.screenshotLabel中放入的是一个QPixmap部件,QPixmap可以显示图片。

3.它自己实现了一个新建button的函数,用于生成button并做一些必要的初始化及连接信号和槽。

4.它实现了一个延迟,可以在设置的秒数后再截图。而Hide This Window的CheckBox则可以选择是否在截图时隐藏这个截图软件。

5.这个程序最主要的就是用了QPixmap::grabWindow这个函数,抓取图片的。

下面是软件的截图:

代码就不上传了,在Qt Demo里可以找到~~~