跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何用 QPaintEvent 和 QPainter 进行绘图?

大家好,我是顺亿,今天我们来聊一聊 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 绘图还有更多疑问,欢迎访问 趣航编程网 了解更多内容。

相关文章