QT学习笔记--绘图事件

包含类名:#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));
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值