常用的UI系统一般包括以下三个功能:
1) 显示
2) 鼠标、键盘事件处理
3) 窗口管理器
我现在逐个详细叙述:
1) 显示系统
显示系统最顶层的就是各种控件和widget,其中有一部分是可以drawable的,也就是可以显示出来的。而有些抽象的,不能显示出来。
可供显示的地方,除了手机屏幕之外,还可以保存为文件或者QPixmap对象等,在台式机上还可以打印,在QT中我们一般称这类对象为PaintDevice。
这类对象一般都有一个内存区域存储点阵像素信息。
有另外一类对象叫QPainter专门用来在QPaintDevice上做渲染工作
这里paint有三种情况
a) 2D图形:比如画直线,曲线,圆,椭圆,包括用图片填充区域等。
b) 3D图形:
c) 多媒体视频和图像:
这三类情况都需要经历自身的图形或者图像算法,包括视频解压算法等,然后通过一种叫“光栅化”的过程刷新到QPaintDevice 的像素缓冲区上,整个过程,称之为“渲染”
整个渲染工作就是由Painter来完成的,就相当于每一个控件都拥有一个小画师,在控件独有的一块画布上画画,然后再通过窗口管理器合并到手机屏幕上显示出来。
由于CPU的速度特别快,所以屏幕上的图像很快就能画出来,就算每秒钟几十帧,都不成问题。
我们工作中常用的是2D渲染,它有包括图片和文字。文字部分叫QtText.
其实还提供了其他图形库和文字库,