首页| 论坛| 消息

标题:Qt编写自定义控件44-天气仪表盘
作者:liudianwu
日期:2019-08-07 09:49
内容:

一、前言
天气仪表盘控件是所有控件中唯一一个使用了svg矢量图的控件,各种天气图标采用的矢量图,颜色变换采用动态载入svg的内容更改生成的,其实也可以采用图形字体来做,本次控件为了熟悉下svg在Qt中的使用,才采用的svg来绘制。
天气一般要表示多个内容,温度+湿度+天气等,这就需要合理的布局多种元素的位置才能更加美观一些,这里参照的是网上一些通用的做法,比如最外层圆环是温度,中间圆环湿度,然后天气图标贴在中间圆环里边的左上角,同时再绘制温度湿度的值,动态变化的。
二、实现的功能
* 1:可设置两种值,比如温度+湿度
* 2:可设置两种值的背景颜色+文字颜色
* 3:可设置零度值左侧右侧两种颜色
* 4:可设置圆的起始角度和结束角度
* 5:可设置10种天气,晴天+雨天+阴天+大风等
* 6:可设置各种其他颜色
* 7:科设置是否启用动画显示进度以及动画步长
三、效果图
.

四、头文件代码
#ifndef GAUGEWEATHER_H
#define GAUGEWEATHER_H
/**
* 天气仪表盘控件 作者:东门吹雪(QQ:709102202) 整理:飞扬青云(QQ:517216493) 2019-4-23
* 1:可设置两种值,比如温度+湿度
* 2:可设置两种值的背景颜色+文字颜色
* 3:可设置零度值左侧右侧两种颜色
* 4:可设置圆的起始角度和结束角度
* 5:可设置10种天气,晴天+雨天+阴天+大风等
* 6:可设置各种其他颜色
* 7:科设置是否启用动画显示进度以及动画步长
*/
#include
#include
#ifdef quc
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
#include
#else
#include
#endif
class QDESIGNER_WIDGET_EXPORT GaugeWeather : public QWidget
#else
class GaugeWeather : public QWidget
#endif
{
Q_OBJECT
Q_ENUMS(WeatherType)
Q_PROPERTY(double outerValue READ getOuterValue WRITE setOuterValue)
Q_PROPERTY(double outerMinValue READ getOuterMinValue WRITE setOuterMinValue)
Q_PROPERTY(double outerMaxValue READ getOuterMaxValue WRITE setOute ..


#1 [qq860930595 08-07 10:28]
沙发
#2 [九重水 08-07 13:49]
老刘,你要发我工资, 除了我,谁这么好花式帮你顶帖的?
#3 回 九重水 的帖子 [liudianwu 08-07 14:57]
九重水:老刘,你要发我工资, 除了我,谁这么好花式帮你顶帖的?  (2019-08-07 13:49) 
老哥来啦,感谢感谢!

回复 发表
主题 版块