Qt绘图(2D)讲解-QPainter类、QPen类、QBrush类及QGradient类

本文介绍了Qt的2D绘图基础,包括QPainter、QPaintDevice和QPaintEngine的角色。重点讲解了QPainter类的使用步骤和常见绘图函数,如drawLine、drawRect等。同时,提到了QPen类在定义线条形状、颜色和样式上的作用。
摘要由CSDN通过智能技术生成

一、绘图基础

2D 绘图系统如下:
在这里插入图片描述
2D 绘图主要是 QPainter、QPaintDevice、QPaintEngine 三个类,主要类的作用(其关系见图示)

  • QPainter(绘制器)是用来执行绘图的操作,用于描述需要绘制的图形,比如需要绘制线、矩形、圆形等。
  • QPaintDevice(绘图设备)是抽象出来的需要绘制的绘图设备,即可以在什么上面绘制图形,比如可在 QWidget、QImage、QPrinter 等上面绘图。
  • QPaintEngine(绘图引擎)提供 QPainter 绘制在不同类型设备上的接口,比如光栅绘图引擎,OPenGL 绘图引擎等。该类通常由 QPainter 和 QPaintDevice 内部使用,除非创建自定义的设备类型,否则通常不需要使用该类。
    在这里插入图片描述

二、QPainter类

QPainter类介绍

此处的QPainter类只做一个简单的解释,后面会单独写一篇文档介绍该类

使用 QPainter 绘制图形的步骤:

  • 创建一个 QPainter 对象;
  • 调用QPainter::begin(QPaintDevice)指定绘图设备并开始绘制,此步骤也可在 QPainter的构造函数中完成。注意:每次调用begin()函数都会把QPainter 的设置重置为默认值
  • 调用 QPainter 的成员函数绘制图形,调用 QPainter::end()结束绘制。
  • 注意:若绘制设备是一个 QWidget 部件,则 QPainter 只能在 paintEvent()处理函数中使用(即,需要子类化 QWidget 部件,并重新实现该函数)
    示例:
void paintEvent(QPaintEvent *e)
{
   
	QPainter pr(this); //创建 pr 对象,并立即开始在部件 this 上绘制图形。
	pr.drawLine(QPoint(11,11), QPoint(111,111)); //绘制一条从点(11,11)到点(111,111)的直线
} //函数结束时,在 QPainter 的析构函数中调用 end()函数结束绘制。

以上代码与以下代码等效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值