关于桌面终端的应用程序,我是这样设计的:
1. 支持多任务,和任务切换。每次只让一个任务窗口被绘制。
2. 使用Qt Plugin机制开发和维护需要的应用插件。这更像是开发不同的应用功能,只是用插件的思想将其与主程序分离开,实现易扩展和易维护。
3. 模仿iPhone OS 4的任务合并方式,制作任务合并效果。当任务被合并后,它们将会根据一定的策略进行布局。当然,还有一些其他的动态效果。
4. 目前的应用包括:ConnectionManager、VideoMonitor、ModelController和MediaGallary
其中, VideoMonitor 算是开发中的重点,负责实时视频的显示、录像和截图功能。同时,也设计了消息(一般是警告或其他提示信息)的显示机制,用于超声波测距或其他控制信息的显示。录像的部分采用的是 Xvid ,将接收到的图像数据编码成视频,而截图则要简单的多,直接 grabWidget 。录像和截图功能做了一些动态效果,包括类似 Camera 和 DV 的拍照模式和录像模式。(右侧的最后一个操作按钮还需要修改,没合适贴图的话只有自己画了)
另外, MediaGallary 用于录像的回放和截图的查看。录像回放做的很像视频播放的界面,而截图查看的功能因为不是重点,只做了一个裁剪的功能。