一.前言
文章只是楼主学习过程的记录,不能面面俱到,也不能每个点都讲到,不喜勿喷
二.QwtDial是啥???
文档原文:
QwtDial class provides a rounded range control
大概的意思就是:QwtDial 提供了一些接口可以用来控制圆形盘的属性(个人理解,翻译太抽象了)
QwtDial is intended as base class for dial widgets like speedometers, compass widgets, clocks
QwtDial 是速度计,指南针,以及时钟这些刻度盘的基类
三.使用举例
1.拖动一个QwtDial 控件
2.常规属性设置核心代码
void Widget3::initDial()
{
// 设置外层圆环的阴影样式
ui->Dial->setFrameShadow(QwtDial::Shadow::Raised);
// 设置外层圆环的阴影的宽度
//qDebug()<<ui->Dial->lineWidth();
ui->Dial->setLineWidth(6);
//
//qDebug()<<ui->Dial->mode();
ui->Dial->setMode(QwtDial::Mode::RotateNeedle);
// 设置数值范围
ui->Dial->setScale(0,60);
// 设置步长
ui->Dial->setScaleStepSize(5);
// 设置角度范围(默认是360度)
ui->Dial->setScaleArc(0,360);
// 设置大刻度的最大值
ui->Dial->setScaleMaxMajor(10);
// 设置小刻度的最大值
ui->Dial->setScaleMaxMinor(5);
// 添加表盘指针
QwtDialSimpleNeedle *dialNeedle = new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Style::Arrow,true,Qt::green,Qt::blue);
dialNeedle->setWidth(10);
ui->Dial->setNeedle(dialNeedle);
// 设置指针指向的数字
ui->Dial->setValue(26);
}
3.利用QTimer实现指针的转动
核心代码
timer = new QTimer();
connect(timer,SIGNAL(timeout()),this,SLOT(onTimeout()));
timer->start(1000);
void Widget3::onTimeout()
{
if(dialVlaue<60)
dialVlaue+=1.0;
else
dialVlaue=0.0;
ui->Dial->setValue(dialVlaue);
qDebug()<<QStringLiteral("当前表盘数值:")<<ui->Dial->value();
}