資源簡介
/****************** QT自定義表盤 ******************/
作者: LifeYx
該表盤效果圖地址: https://www.cnblogs.com/lifexy/p/9245918.html
介紹:
內部自動設定組件的數字,指針等大小,可以隨意變大變小
內部集成定時器,可以通過setTimerType()成員函數實現動畫旋轉快慢
可以通過setGradientColorMode()成員函數可以自定義劃過的漸變顏色
可以通過setSingleColorMode()自定義劃過的單一顏色
支持負數到正數更改
支持小數點位數設置
優化刻度值自適應窗口,能顯示更正顯示個位至千位
支持表盤所有顏色搭配
附帶3個demo程序,可視化設定表盤顏色等
demo程序介紹:
demo1 :展示3個不同的表盤滑動顏色
demo2 :實現直接可視化設置表盤各個顏色,以及數值,小數點等
demo3 :在demo2的基礎上,增加了表盤光影效果,實現立體感

代碼片段和文件信息
#include?“Dial.h“
Dial::?Dial(QWidget?*parent??QString?labelText?QString?valueText??QString?iconFile?):
????QWidget(parent)
????label(labelText)
????Value_Text(valueText)
????iconfile(iconFile)
????icon(iconFile)
????timer_msec(0)
{
?????Scale_decimal=1;???????????????????//設置保留小數點
?????center_decimal=1;
?????if(!Value_Text.contains(“%1“))
?????{
?????????Value_Text?=?“%1“;
?????}
?????radius=0;??????????????????????????//儀表盤最外圈半徑
?????minvalue=0;
?????maxvalue=120;?????????????????????//表盤刻度最大值
?????value=20;?????????????????????????//當前值
?????endvalue=0;
?????modeColor=ModeSingleColor;
?????ScaleColor=QColor(185185185);????????????//表盤刻度顏色
?????PointerColor=QColor(24921);??????????????//指針顏色
?????SingleSlideColor?=QColor(83213251);??????//劃過的單顏色
?????slideScaleColor?=?QColor(255255255);?????//劃過的刻度顏色
?????ValueColor=QColor(255255255);????????????//值顏色(包括標簽)
?????LabelColor=QColor(192192192);
?????obkColor=QColor(252252248);???????????????//外圓背景色
?????bkColor=QColor(262626);???????????????????//第二個圓背景色
?????centercolor=QColor(383838);????????????????//中心圓盤背景色
?????connect(&timerSIGNAL(timeout())thisSLOT(ontimeout()));
}
void?Dial::drawObkColor(QPainter&?paint)??????//繪制外圓
{
????????paint.save();
????????QConicalGradient??Conical(0090);
????????Conical.setColorAt(0obkColor);
????????Conical.setColorAt(0.5obkColor);
????????Conical.setColorAt(0.12obkColor.darker(40));
????????Conical.setColorAt(0.88obkColor.darker(40));
????????Conical.setColorAt(0.4obkColor.darker(30));
????????Conical.setColorAt(0.6obkColor.darker(30));
????????Conical.setColorAt(0.25obkColor.darker(160));
????????Conical.setColorAt(0.75obkColor.darker(160));
????????Conical.setColorAt(1obkColor);
????????paint.setBrush(Conical);
????????paint.drawEllipse(QPointF(00)?radius*0.96radius*0.98);
????????Conical.setAngle(270);
????????Conical.setColorAt(0obkColor.darker(40));
????????Conical.setColorAt(0.5obkColor.darker(40));
????????Conical.setColorAt(0.25obkColor.darker(160));
????????Conical.setColorAt(0.75obkColor.darker(160));
????????paint.setBrush(Conical);
????????paint.drawEllipse(QPointF(00)?radius*0.93radius*0.94);
????????paint.restore();
}
void?Dial::drawScalebkColor(QPainter?&paint)????????//繪制刻度圓
{
????paint.save();
????paint.setBrush(bkColor);
????paint.drawEllipse(QPointF(00)?radius*0.90radius*0.90);
????paint.restore();
}
void?Dial::drawbkColor(QPainter?&paint)???????//繪制內圓
{
????paint.save();
????paint.setBrush(bkColor);
????paint.drawEllipse(QPointF(00)?radius*0.77-2radius*0.77-2);
????paint.setBrush(bkColor.darker(200));
????QRadialGradient?Radial(00centerR*1.0600);
????Radial.setColorAt(1bkColor);
????Radial.setColorAt(0.98bkColor.darker(110));
????Radial.setColorAt(0.95bkColor.darker(120));
????Radial.setColorAt(0.90bkColor.darker(130));
????pain
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????372??2018-06-29?22:38??biaopan\demo1\biaopan\biaopan.pro
?????文件??????20129??2018-07-01?22:55??biaopan\demo1\biaopan\Dial.cpp
?????文件???????5095??2018-06-30?23:27??biaopan\demo1\biaopan\Dial.h
?????文件????????477??2018-06-29?22:48??biaopan\demo1\biaopan\main.cpp
?????文件???????1874??2018-06-29?15:32??biaopan\demo1\biaopan\r.png
?????文件????????131??2018-06-29?15:48??biaopan\demo1\biaopan\res.qrc
?????文件???????1305??2018-06-29?15:48??biaopan\demo1\biaopan\V.png
?????文件???????2835??2018-06-29?23:38??biaopan\demo1\biaopan\widget.cpp
?????文件????????558??2018-06-29?22:35??biaopan\demo1\biaopan\widget.h
?????文件????????384??2018-07-01?11:24??biaopan\demo2\biaopan\biaopan.pro
?????文件??????20394??2018-07-01?22:53??biaopan\demo2\biaopan\Dial.cpp
?????文件???????5232??2018-07-01?22:53??biaopan\demo2\biaopan\Dial.h
?????文件???????4562??2018-07-01?11:57??biaopan\demo2\biaopan\form.cpp
?????文件????????965??2018-07-01?11:28??biaopan\demo2\biaopan\form.h
?????文件??????14908??2018-07-01?01:22??biaopan\demo2\biaopan\form.ui
?????文件????????441??2018-07-01?11:23??biaopan\demo2\biaopan\main.cpp
?????文件???????1874??2018-06-29?15:32??biaopan\demo2\biaopan\r.png
?????文件????????131??2018-06-29?15:48??biaopan\demo2\biaopan\res.qrc
?????文件???????1305??2018-06-29?15:48??biaopan\demo2\biaopan\V.png
?????文件????????384??2018-07-01?11:24??biaopan\demo3\biaopan\biaopan.pro
?????文件??????23614??2018-07-01?23:51??biaopan\demo3\biaopan\Dial.cpp
?????文件???????5789??2018-07-01?21:45??biaopan\demo3\biaopan\Dial.h
?????文件???????5171??2018-07-01?22:41??biaopan\demo3\biaopan\form.cpp
?????文件????????984??2018-07-01?22:09??biaopan\demo3\biaopan\form.h
?????文件??????14908??2018-07-01?21:45??biaopan\demo3\biaopan\form.ui
?????文件????????441??2018-07-01?11:23??biaopan\demo3\biaopan\main.cpp
?????文件???????1874??2018-06-29?15:32??biaopan\demo3\biaopan\r.png
?????文件????????131??2018-06-29?15:48??biaopan\demo3\biaopan\res.qrc
?????文件???????1305??2018-06-29?15:48??biaopan\demo3\biaopan\V.png
?????文件????????716??2018-07-01?23:08??biaopan\readMe.txt
............此處省略10個文件信息
評論
共有 條評論