今年国外疫情影响 , 真的比较闲..................

上网的时候无意中看到不少 制作仪表盘自定义控件的, 忍不住自己也做了一个.

先提下几个大仙: xieguiproject (谢大仙), feiyangqingyun (刘大仙), Osean_li (李大仙),

先贴个图,指针从 100-->240-->0->240循环往复

Qt C++ 自定义控件 和 汽车仪表盘 ---ricky.chu_第1张图片

用了一个 圆形渐变 和 一个圆锥渐变 .自定义控件属性有 设置最大最小值,

大刻度和小刻度. 起始位置,结束位置和 6 点钟位置夹角。

还有设置当前数值和小数点.

设置刻度值数字的时候, 要分坐标轴左右 用不同的公式来微调,

网上很多代码段落都是不完整的 . 例如求刻度数值坐标位置

...................................

w = fm.size(Qt::TextSingleLine,str).width();

h = fm.size(Qt::TextSingleLine,str).height();

x = 82 * cosa - w / 2;

y = -82 * sina + h / 4;

painter->drawText(x, y, str)

drawtext() 从左到右,但是如果圆的左右上下都是一个坐标公式, 仪表盘半径变动的时候,

问题就会比较 明显.   如数字侵入到 仪表盘 刻度上 ,或 远离刻度.
    所以坐标轴正负方向特别是 x 轴 分开用两个公式来微调刻度值
    的位置比较好 . 另外半径用控件大小的比例来设置,不直接固定 
    大小.