图形绘制-仪表盘(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);

相关推荐
wuminyu10 小时前
虚拟线程底层ForkJoinPool的工作窃取算法机制
java·linux·c语言·jvm·c++
我是小灰灰吖10 小时前
Ubuntu 22.04 + Qt 6.9.3 应用程序打包与部署完整指南
qt·ubuntu
吹什么轩10 小时前
c++复习:c++11:lambda表达式
开发语言·c++
不会代码的小猴10 小时前
标准模板库(STL)
开发语言·c++·笔记·算法
旖旎夜光11 小时前
LeetCode 202:快乐数(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
tudousisi22211 小时前
P1216 [IOI 1994 / USACO1.5] 数字三角形 题解复盘
c++
qq_4017004111 小时前
Qt自定义信号槽详解:带参发射 vs sender()获取,两种多信号关联方案全掌握
java·数据库·qt
cpp_250111 小时前
P1113 [USACO02FEB] 杂务
数据结构·c++·算法·动态规划·图论·拓扑排序·洛谷题解
此生决int12 小时前
深入理解C++系列(11)——stack、queue和priority_queue
开发语言·c++
小徐不徐说12 小时前
VS 2022 Visual Assist 破解
c++·visualstudio·工具·插件