1《嵌入式GUI程序设计》——Qt5图形与图片(第六章)教学回顾•Qt内置对话框(重点)•Qt工具盒;•Qt进度条;•Qt调色板;•Qt可扩展对话框2教学内容•Qt绘制事件•Qt2D绘图•画笔•画刷•基本图形和文本绘制•渐变填充•绘制文本•图像处理•坐标系统与坐标变换•绘图举例:表盘34Qt绘制事件事件处理和绘制(Painting)•当应用程序收到绘制事件时,就会调用QWidget::paintEvent(),该函数就是绘制窗口的地方•有两种方法要求重绘一个窗口–update()–把重绘事件添加到事件队列中•重复调用update()会被Qt合并为一次•不会产生图像的闪烁•可带参数指定重绘某个区域–repaint()–立即产生绘制事件•一般情况下不推荐使用此方法•只使用在需要立即重绘的特效情况下•可带参数指定重绘某个区域5事件处理和绘制(Painting)•为处理绘制事件,只需要重写paintEvent函数,并在该函数中实例化一个QPainter对象进行绘制6classMyWidget:publicQWidget{
protected:voidpaintEvent(QPaintEvent*);voidMyWidget::paintEvent(QPaintEvent*ev){QPainterp(this);
基本绘制•QPainter类提供绘制操作其构造函数原型为:QPainter(QPaintDevice*device)•QPaintDevice代表绘制2D图像的画布•如下继承QPaintDevice的类对象都可用于QPainter绘制–QWidget,QImage,QPixmap,QPicture,QPrinter,QSvgGenerator,QGLPixelBuffer,QGLFrameBufferObject,
78Qt2D绘图QT2D绘图•Qt中的2D绘图