本章节我们介绍如何绘制实时变化的车速及指针对应的位置。
效果如下:
关于通过继承重写QWidget的绘制事件paintEvent(),来绘制仪表盘的基础操作,请看
完整代码,请从https://download.csdn.net/download/zhouhui1982/88794418下载。
在dashboard.h头文件,声明公有函数setSpeed,用于设置速度
public slots:
void setSpeed(int speed);
在dashboard.cpp代码文件中实现:
void Dashboard::setSpeed(int speed)
{
//超出范围判断
if(speed>m_maxSpeed)
m_curSpeed=m_maxSpeed;
else if(speed
speed=m_minSpeed;
else
m_curSpeed = speed;
//刷新绘制消息,很重要,不加不重新绘制
update();
}
在调用仪表盘的主窗体mainwindow.cpp代码中加定时器,通过随机函数,得到100以内的整数,赋值给仪表盘:
加引用头文件:
#include
在构造函数中加以下代码:
QTimer *timerSpeed=new QTimer(this);
connect(timerSpeed,&QTimer::timeout,[=]{
int speed = rand()%100;
dashboard->setSpeed(speed);
qDebug()
});
timerSpeed->start(100);