QPainter类低水平的绘制,例如在窗口部件上。
绘制工具为做到绝大部分绘制图形用户界面程序的需要提供了高度优化的函数。
绘图工具的典型用法是:
1、构造一个绘图工具。
2、设置画笔、画刷等等。
3、绘制。
4、销毁这个绘图工具。
绝大多数情况下,所有这些是在一个绘制事件中完成的。(99%的QPainter使用是在QWidget::paintEvent()的重新实现中。)
1、构造绘制工具:
1>使用构造函数构造绘制工具(传入绘制设备指针)
QPainter painter(this); //在构造函数中自动调用begin();在析构函数中自动调用end()
2>结合使用(不传绘制设备指针)
QPainter painter;
painter.being(this); //调用begin传入绘制设备指针
//开始绘制
painter.end() //调用end()销毁绘制工具
实例:绘制点
//绘制点---------------------
//构建绘制工具
QPainter painter(this);
//设置画笔属性:红色\100\实线\圆
painter.setPen(QPen(Qt::red, 100, Qt::SolidLine, Qt::RoundCap));
//绘制点
painter.drawPoint(100,100);
painter.setPen(QPen(QBrush(Qt::blue), 100, Qt::SolidLine, Qt::SquareCap));
painter.drawPoint(200,100);
效果:
实例:绘制线
//绘制线-------------------
//构建绘制工具
QPainter painter;
painter.begin(this);
//Qt::DashDotDotLine::断线、点、点
painter.setPen(QPen(Qt::red,5,Qt::DashDotDotLine,Qt::RoundCap));
painter.drawLine(QPoint(50,50),QPoint(300,50));
//Qt::DashDotDotLine::断线、点
painter.setPen(QPen(Qt::blue,5,Qt::DashDotLine,Qt::SquareCap));
painter.drawLine(QPoint(50,100),QPoint(300,100));
实例:绘制矩形
//绘制矩形-----------------------
QPainter painter(this);
//设置边框属性
painter.setPen(QPen(Qt::red,2,Qt::SolidLine,Qt::RoundCap));
//设置填充属性
painter.setBrush(QBrush(Qt::blue,Qt::FDiagPattern));
//传入左上角坐标、以及宽度
painter.drawRect(QRect(20,20,200,200));
实例:绘制椭圆
//绘制椭圆
QPainter painter(this);
//设置边框圆滑
painter.setRenderHint(QPainter::Antialiasing,true);
//设置画笔(边框属性)
painter.setPen(QPen(Qt::red,5,Qt::SolidLine,Qt::RoundCap));
//设置刷子(填充)
painter.setBrush(QBrush(Qt::blue));
//跟画矩形类似
painter.drawEllipse(20,20,200,100);
//drawEllipse函数重载,传入中心点,设置从椭圆中心点往外的横向宽度、以及纵向宽度
painter.drawEllipse(QPoint(200,200),100,10);
效果图: