包含类名:#include<QPainter>
重写方法:void QWidget::painterEvent(QPaintEvent *)
该自动调用,不用手动调用
drawLine(x,y, x2, y2)绘制直线
drawRect(x, y, width, height), 以xy为左上角绘制矩形
drawEllipse(QPoint(x, y), width,height) 以xy为圆心绘制椭圆
drawText(x, y, QString Text)在xy处写字
QPen pen(QColor(r, g, b)) 创建画笔
painter.setPen(pen)使用画笔
pen.setWidth(int) 设置宽度
pen.setStyle(Qt::style) # 设置线条格式
QBrush(QColor(r, g, b)) 设置填充颜色
QBrush(Qt::color) 设置填充颜色
painter.setBrush(QBrush) 使用画刷
代码:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *)
{
//重写之后自动调用
QPainter painter(this);
//从0,0到100,100绘制一条直线
painter.drawLine(QPoint(0, 0), QPoint(100, 100));
//设置画笔
QPen pen(QColor(255, 0, 0));
//让画家使用画笔
painter.setPen(pen);
//画圆
painter.drawEllipse(QPoint(100, 100), 50, 50);
//设置笔刷的宽度
pen.setWidth(3);
painter.setPen(pen);
//设置画笔风格
pen.setStyle(Qt::DashLine);//虚线
painter.setPen(pen);
//画矩形
painter.drawRect(50, 50, 50, 50);
//写文字
painter.drawText(100, 100, "你好");
painter.drawText(QRectF(10, 200, 100, 50),"你好");
//设置画刷
// QBrush brush(QColor(0, 255, 0));//填充颜色
QBrush brush(Qt::gray);//设置为灰色
painter.setBrush(brush);
painter.drawRect(QRectF(200, 200, 50, 50));
}