正在学习qt,c基础0,在ui里放一个widget(提升为CBv类),一个Dial,想转动Dial,widget里画的类似进度条的图形也随着Dial值的改变前进或后退。最下面的那两段代码是抄刘大神的,可是出来的效果是drawdial一直在前进,即使Dial后退了也在前进,但不提升类的话,直接都写在widget里就正常,哪位大神帮帮忙啊,这要怎么改啊,感谢
void Widget::on_dial_sliderMoved(int position){
QString s = QString::number(position, 10);
double curren=s.toDouble();
//qDebug()<<currentPercent;
ui->widget1->updateValue(curren);
this->update();
}
void CBv::updateValue(int currentvalue){
currentvalue = currentPercent * ((maxValue - minValue) / 100) + minValue;
currentPercent ++;
update();
}
void CBv::drawDial(QPainter *painter)
{
int radius = 95;
double lineWidth = 5;
painter->save();
painter->rotate(angle);
//根据起始旋转的角度计算每次坐标需要旋转的角度,按照100等分计算
//每次旋转的角度=360-(起始角度*2--分左右)/100
double rotate = (double)(360 - (angle * 2)) / 100;
//绘制已使用百分比
painter->setPen(QPen(usedColor, lineWidth));
for (double i = 0; i < currentPercent; i++) {
painter->drawLine(0, radius, 0, radius / 1.2);
painter->rotate(rotate);
}
//绘制未使用百分比
painter->setPen(QPen(freeColor, lineWidth));
for (double i = currentPercent; i < 100; i++) {
painter->drawLine(0, radius, 0, radius / 1.2);
painter->rotate(rotate);
}
//this->update();
painter->restore();
}