图形绘制-仪表盘(4)

本章节我们介绍如何绘制实时变化的车速及指针对应的位置。

效果如下:

关于通过继承重写QWidget的绘制事件paintEvent(),来绘制仪表盘的基础操作,请看

图形绘制-仪表盘(1)-CSDN博客

图形绘制-仪表盘(2)-CSDN博客

图形绘制-仪表盘(3)-CSDN博客

完整代码,请从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);

相关推荐
luj_17682 小时前
断舍离中的项目管理智慧
c语言·开发语言·c++·经验分享·算法
FFZero12 小时前
[mpv架构] (三) mpv 怎么实现 MP4 秒开?
c++·音视频·mpv
OPEN-F2 小时前
C++进阶教程:文件流与字符串流
开发语言·c++·算法
Android打工人2 小时前
c++ 、java 融为一体2,c++ 实例化Android虚拟机直接运行java,c,java 一个进程号
android·java·c++
jimy12 小时前
std::move(a)本质是把a转换成右值引用类型
开发语言·c++
01_ice2 小时前
c++类和对象(中)
c++·算法
码匠许师傅3 小时前
【设计模式精讲】4.单例模式(Singleton)
c++·单例模式·设计模式
wind100323 小时前
VC++ 运行库 vcredist 安装失败|CLR 80131522 报错完整修复
开发语言·c++·游戏
OPEN-F9 小时前
C++进阶教程:继承与多态
开发语言·c++
luj_176811 小时前
大律师考核应重能力与科技素养
c语言·开发语言·c++·经验分享·算法