Qt自定义控件之仪表盘2--QPaint绘制仪表盘
0、前言 前面一篇文章写道了仪表盘的特点,实现了一个贴图的仪表盘,属于低配版本的仪表盘。 主要是有任何改动时候就需要重新设计图片,不能适配不同控件大小,即使让它自由拉伸,但仪表盘放大缩小时候显示效果会变差。这篇文章设计了一个自己绘制的仪表盘,有背景表盘,刻度线、刻度值,指针,以及动态运行效果。 1、demo顶层设计 设计2个控件,1个widget提升为Mydial仪表盘控件,一个滑动条控件,来测试仪表盘指针旋转效果用。 代码调用,绑定滑动条信号到仪表盘的槽函数即可。 #include " widget.h " #include " ui_frmwidget.h " #include <QDebug> Widget::Widget(QWidget * parent) : QWidget(parent) , ui( new Ui::Widget) { ui ->setupUi( this ); connect(ui ->horizontalSlider, &QSlider::valueChanged, ui->dial, & MyDial::valueChanged); } Widget:: ~ Widget() { delete ui; } 2、绘制仪表盘 绘制背景图,绘制表盘圆圈。 void MyDial::drawBg(QPainter * painter) { int r =