通识教育课程论文 课程名称: C++图形界面编程技术 _ 学 院 _ 专业班级 学 号 姓 名 爱尔兰 (KEN 联系方式 irelandken @ 163
com 任课老师 LZ 论 QT 的信号/槽机制——WindowCut—一个简单有用的截图软件在图形界面编程技术,我比较喜爱 QT 这个框架,喜爱它的一次编写,到处编译这种方式,既高效,移植性又强,我试过在 window 下用 Qt creator 开发一个软件,然后直接将工程放到 linux ubunto 11
04 下,再次用 Qt creator打开之前的工程,很简单地直接编译一次,一个代码也不用改,就将该软件移植到 Linux 下了,这一点很不错
更重要的是,Qt 为我们带来了全新的思想:将一个工程逻辑分解为多个组件,利用强大的信号/槽机制,竟然可使这个工程分解为相互独立,互不干扰的若干个部分
以下,我将通过介绍我的 WindowCut 截图软件的编写过程来分析这种思想
界面:截图过程:截图后的效果:思想:这个软件由 1:主窗口mainWindow,2:全屏截图器 FullEdit FEdit(就是半透明的全屏的组件) 和 3:截图查看器 PicSee PSee 组成,这3部分都是互相独立的类,在类的定义中,类与类之间无直接的函数调用,这些组件定义了若干个signal/slot, 而这3个类的实例是通过 signal/slot机制偶合在一起的
mainWindow上的Cut按键被按下后,mainWindow就隐藏,并发出一个StartCut()的信号,表示“开始截图”
然后FEdit接收到StartCut()信号后,它就初始化,并记录下此时刻的屏幕背景,最后全屏显示半透明的背景
然PSee接收这个信号后,它就隐藏起来
当用户在全屏截图器FEdit的全屏半透明背景上选定好区域后,FullEdit就会