大家好,我是顺亿,今天我们来聊一聊 Qt 中的绘图利器 —— QPaintEvent 和 QPainter。
首先,QPaintEvent 是一个绘图事件,它会在 UI 初始化之后自动调用,以及 UI 发生变化时被触发。我们通常在子类中重写 paintEvent 函数来处理绘图逻辑。
接下来,QPainter 是我们用来进行绘图的工具,它可以在 paintEvent 函数中使用。下面,我会详细介绍一下它们的用法。
QPaintEvent 的使用
paintEvent 是一个虚函数,我们通常在子类中重写它来接受绘图事件。当调用 repaint 或 update 函数时,都会触发 paintEvent 函数。推荐使用 update 函数,因为它经过了 Qt 的优化。
QPainter 的基础使用
QPainter 通常在 paintEvent 函数中使用。它可以绘制点、线条、矩形、圆弧、椭圆、图片、文字等 UI 元素。下面是一些常用的接口:
QPainter (QPaintDevice *device):构建画家对象,并指定绘图设备。drawArc:在指定的矩形中画内切的圆弧。drawChord:在指定的矩形中画弦。drawPie:在指定矩形中画饼型图。drawConvexPolygon:根据给定的多个点来画凸多边形。drawPolygon:画多边形。drawEllipse:在指定矩形内画椭圆。drawImage:绘制图片。drawLine:根据给定的点来画线。drawPolyline:根据多个点来画折线。drawPath (const QPainterPath &path):画指定的路径图。drawPicture:在给定的点重新加载展示指定的图片。drawPixmap:画像素图。drawPoint:画一个点。drawRect:画方正的矩形。drawRoundedRect:画带圆角的矩形。drawText:画文本文字。fillRect:用指定的颜色来填充矩形区域。setPen:设置画笔的样式。setOpacity:设置不透明度。setBackground:设置填充背景的颜色样式。setBrush:以指定的颜色样式填充所画的图形。setFont:绘制文本内容时,来设置对应的字体样式。setLayoutDirection:当绘制文本内容时,用来设置布局的方向。
QPainter 和 QPen 都可以调用各自的 setBrush 函数,但它们的作用效果完全不同。在 QPainter 中调用 setBrush 函数时,可以填充封闭图形,相当于刷子。
好了,今天的分享就到这里。如果你对 Qt 绘图还有更多疑问,欢迎访问 趣航编程网 了解更多内容。
