绘图事件paintEvent

  • 绘图事件不用手动调用,通过重写父类虚函数之后会自动调用
  • 绘图基本设置,要有画家——画家类
  • 可以设置画笔,比如画笔颜色和线条样式
  • 可以设置画刷,可以对封闭图形进行涂刷。画刷的颜色,和画刷的样式

设置完画笔之后,不要忘了,要把这个对象传入画家,才能画出美丽的图形

重写父类虚函数,防止写错,加上override

//画图事件
void paintEvent(QPaintEvent *event) override;

主要代码,可以实现画线、矩形、椭圆、圆、文字、等基本图案

//绘图事件,也不用手动调用,系统会自动调用
void Widget::paintEvent(QPaintEvent *event)
{
    //这是画家类,定义一个画家的对象
    QPainter paint(this);

    //设置颜色
    paint.setPen(QColor(200, 0, 0));
    //设置线条样式
    //paint.setPen(Qt::DashLine);
    //像pen这种类既可以设置风格,又可以设置颜色,最好就不要用无名对象了\
    把这个对象单独拎出来,最后让画家拿起这个画笔,清晰明了。
    QPen pen;
    pen.setColor(QColor(0, 0, 255));
    pen.setStyle(Qt::DashLine);
    //设置完画笔还可以设置画刷,画刷就是对于封闭图形可以进行颜色填充
    QBrush brush;
    brush.setColor(QColor(0, 255, 0));
    brush.setStyle(Qt::HorPattern);
    //最后别忘了把设置的画笔、画刷给放到笔上呀!!
    paint.setPen(pen);
    paint.setBrush(brush);


    //画线
    paint.drawLine(QPoint(0, 0), QPoint(100, 100));

    //画圆、椭圆
    //这是无名对象,方便快捷,也可以给QPoint定义一个对象point1,如下所示:
    paint.drawEllipse(QPoint(100, 100), 50, 50);
    QPoint point1;
    point1.setX(100);
    point1.setY(100);

    //画矩形
    paint.drawRect(QRect(QPoint(100, 100), QPoint(200, 200)));

    //画文字
    paint.drawText(QPoint(200, 200), "好好学习,天天向上。。。。");
}

结果展示:
在这里插入图片描述
注意事项:

  1. 在本例中大量使用无名对象,目的就是方便,省事,节约空间时间
  2. 无名对象缺点也很明显,如果需要设置的参数有多个,并且构造函数没有提供,如果多次调用,很可能会被覆盖,仅仅最后一条代码生效
  3. 当形参对象有多个参数时,最好实例化对象,拿出来单独设置,最后将对象整体传入
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值