Qt(C++) 绘制指针仪表盘显示当前温度
一、功能介绍
当前文章要实现的功能:
使用 Qt 绘制一个仪表盘,用来显示当前的温度,绘制刻度、绘制数字、绘制温度指针。仪表盘全程使用 QPainter 进行绘制,QPainter 是 Qt 框架中非常重要的一个类,绘制功能的实现离不开它。如果想要使用 Qt 进行高质量的绘图或 UI 设计,必须掌握 QPainter 的使用方法。
QPainter 的简介:
QPainter 是 Qt 里用于绘制图形的类,提供了各种绘制函数,可以绘制几何图形、文本、图片等等。QPainter 所绘制的图形可以在 QWidget 及其子类的 paintEvent()事件中使用,也可以在 QPixmap 等其他对象中进行绘制。
QPainter 的大致使用流程如下:
温度仪表盘最终绘制出的效果--带数字刻度:
无数字刻度效果:
二、代码设计过程
【1】定义一个自定义控件 my_DrawDashboard,继承 QWidget 类
【2】在 my_DrawDashboard 的构造函数中初始化温度及其他属性值
【3】在 my_DrawDashboard 中实现 paintEvent()函数,绘制仪表盘
【4】在 my_DrawDashboard 中提供一个 setTemperature()函数,用于更新当前温度并触发 temperatureChanged 信号
【5】使用 QTimer 来模拟温度的变化,并实时更新仪表盘的显示
上面代码中,在主窗口中创建了一个 my_DrawDashboard 控件,使用 QTimer 对象来模拟温度的变化。每隔 1 秒钟生成一个随机的温度值,调用 my_DrawDashboard 的 setTemperature()函数来更新当前温度,并实时更新仪表盘的显示。
三、完整的工程
【1】my_DrawDashboard.cpp
【2】my_DrawDashboard.h
【3】设计 UI 界面
在主窗口上,拖拽一个 QWidget 控件,提升为my_DrawDashboard
类型。
版权声明: 本文为 InfoQ 作者【DS小龙哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/a85b8cee9b34bab3fb45792c8】。文章转载请联系作者。
评论