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

如何用 QPaintEvent 和 QPainter 进行绘图?

大家好,我是顺亿,今天我们来聊一聊 Qt 中的绘图利器 —— QPaintEventQPainter

首先,QPaintEvent 是一个绘图事件,它会在 UI 初始化之后自动调用,以及 UI 发生变化时被触发。我们通常在子类中重写 paintEvent 函数来处理绘图逻辑。

接下来,QPainter 是我们用来进行绘图的工具,它可以在 paintEvent 函数中使用。下面,我会详细介绍一下它们的用法。

QPaintEvent 的使用

paintEvent 是一个虚函数,我们通常在子类中重写它来接受绘图事件。当调用 repaintupdate 函数时,都会触发 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:当绘制文本内容时,用来设置布局的方向。

QPainterQPen 都可以调用各自的 setBrush 函数,但它们的作用效果完全不同。在 QPainter 中调用 setBrush 函数时,可以填充封闭图形,相当于刷子。

好了,今天的分享就到这里。如果你对 Qt 绘图还有更多疑问,欢迎访问 趣航编程网 了解更多内容。

相关文章