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

相关推荐
xiao_li_ya1 小时前
C++学习日记1(`*`的理解、const关键词)
开发语言·c++
郝学胜-神的一滴3 小时前
Qt 入门 01-02: 开发环境搭建指南
开发语言·c++·qt·客户端
Languorous.3 小时前
C++数据结构高阶|布隆过滤器(Bloom Filter)深度解析:从原理到手写实现,面试高频考点全覆盖
数据结构·c++·面试
山河木马3 小时前
Emscripten 从 C/C++ 调用 JavaScript
前端·javascript·c++
TANGLONG2224 小时前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
小侯不躺平.4 小时前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
code_whiter4 小时前
C++11(stack和queue)
开发语言·c++
用户805533698034 小时前
现代Qt开发教程(新手篇)2.1——QPainter 绘图基础
c++·qt
计算机安禾4 小时前
【c++面向对象编程】第12篇:继承(二):构造与析构顺序,继承中的构造函数
开发语言·c++
小短腿的代码世界5 小时前
Qt 3D 深度解析:QtQuick 与 Scene Graph 驱动的工业级 3D 渲染架构
qt·3d·架构