Qt绘制事件与绘制类QPainter类

本文介绍了QWidget类的paintEvent函数,其在窗口更新和重绘时被调用,详细讲解了如何使用QPainter进行绘图,包括设置QPen和QBrush属性,以及在UI交互中移动图片的实现。还推荐了零声学院的课程资源作为学习资料。
摘要由CSDN通过智能技术生成

QWidget

QWidget是一个多重继承类,继承了QObject和QPaintDevice两个类。在这里插入图片描述

QPainterDevice

在这里插入图片描述

QPainter

QPaintEvent

paintEvent 的调用时间:

1、在构建窗体的时候执行
2、在窗体update的时候执行
3、系统认为窗口需要重新绘制的时候执行

重写paintEvent函数内容

1、首先定义绘制类QPainter对应,以及确定在哪里画

QPainter painter(this);

2、定义绘制工具,即绘图的一下属性。如QPen、QBrush等

QPen pen; 不需要设置父对象,因为这是在栈上设置的。
QBrush brush;

3、设置绘制工具的属性

//线的属性
pen.setColor(QColor(255,0,0));//笔的颜色
pen.setWidth(5); //直径为5个像素
pen.setStyle(Qt::DashLine);
//刷子的属性
brush.setStyle(Qt::CrossPattern);
在这里插入图片描述关于QPen的函数
在这里插入图片描述

4、把绘制工具放到画家(绘制类QPainter)手里

//让画家拿笔
painter.setPen(pen);
//让画家拿刷子涂鸦
painter.setBrush(brush);

5、画家开始画,即怎么画,画的具体形状

//画线
painter.drawLine(QPoint(10,10),QPoint(10,50));
//画矩形
painter.drawRect()
//画圆
painter.drawEllipse()
//画图
painter.drawPixmap(x位置,y位置,QPixmap(“图片地址”));

QPainter的一些方法如drawRect
在这里插入图片描述

注意:点击按钮进行移动图片的思路

设置在界面类中posX属性,通过connect设置槽函数,每次点击,改变posX的值,然后进行更新,即调用重写的paintEvent函数。该函数里面的图片位置为变量posX
this->update(); 不能遗漏。

移动出界面,循环回到原界面思路

设置一个条件判断即可。
if(posX>this->width()){
posX=10;
}
参考 :b站UP绯夏之雨
———————————————————————————————
推荐一个零声学院课程,个人觉得老师讲得不错,分享给大家:零声白金自学卡(含基础架构/高性能存储/golang/QT/音视频/Linux内核)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值