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

Posted 草上爬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)的主要内容,如果未能解决你的问题,请参考以下文章

Qt系列文章之二十六(基于QMediaPlayer 在 QVideoWidget或QGraphicsVideoItem 组件上播放视频)

Qt基础之二十:进程间通信

Qt基础之二十:进程间通信

Qt基础之二十一:QtRO(Qt Remote Object)实现进程间通信

Qt基础之二十一:QtRO(Qt Remote Object)实现进程间通信

Qt基础之二十九:图形视图框架(Graphics View Framework)及其应用