文章目录
QT绘图事件
一、绘图
Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。
二、简单的绘图使用(模拟表盘)
1.建立文件drawer
2.在widget.h进行修改
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QDebug> //打印调试信息
#include <QPainter> //画的头文件
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
void paintEvent(QPaintEvent *event) //绘图事件的方法
{
qDebug()<<"1111111";
QPainter p(this); //画在主屏幕上
// p.drawEllipse(QPoint(0,0),100,100); //画一个圆 画在0,0坐标 长和宽都是100
p.translate(this->width()/2,this->height()/2); //将画家搬到正中心 宽度/2 高度/2
p.drawEllipse(QPoint(0,0),100,100); //画一个圆 画在0,0坐标 长和宽都是100
//p.drawLine(0,0,50,50); //在圆里画一条线
p.rotate(i++*6); //围绕圆点转动
p.drawLine(0,0,50,50); //在圆里画一条线
}
void timerEvent(QTimerEvent *event) //设置定时器
{
update(); //调用一次进行强制刷新 来激活paintEvent
}
private:
int i;
};
#endif // WIDGET_H
3.修改widget.cpp
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
i=0;
startTimer(1000); //设置定时时间
}
Widget::~Widget()
{
}
三、效果展示