Qt基础之二十六:Qt绘图系统(Paint System)

Qt的绘图系统允许使用相同的API在屏幕和其它打印设备上进行绘制。整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类。
QPainter用来执行绘制的操作;QPaintDevice是一个二维空间的抽象,这个二维空间允许QPainter在其上面进行绘制,也就是QPainter工作的空间;QPaintEngine提供了QPainter在不同的设备上进行绘制的统一的接口。QPaintEngine类应用于QPainter和QPaintDevice之间,通常对开发人员是透明的。除非你需要自定义一个设备,否则你是不需要关心QPaintEngine这个类的。

这种设计的主要优点是,所有绘制都遵循相同的绘制逻辑,从而可以轻松添加对新功能的支持,方便功能扩展。

一.绘图设备

QPaintDevice是可绘图对象的基类,即QPainter可以在任何QPaintDevice的子类上绘图。QWidget、 QImage、QPixmap、QPicture、QPrinter、和 QOpenGLPaintDevice共同实现了QPaintDevice的绘图功能,他们都是继承自QPainterDevice的。

1.Widget

QWidget类是QtWidgets模块中用户界面元素的基类。它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自身。

2.Image

QImage类提供了一种独立于硬件的图像表示,它针对I/O、像素的自接访问和操作进行了优化。QImage支持多种图像格式,包括单色、8位、32位和包含alpha通道的图像。
QImage类最大的优势在于能够进行像素级

你可能感兴趣的:(Qt基础,qt,绘图系统,paint,system)