Qt自定义控件实现简易仪表盘

  

本文实例为大家分享了Qt自定义控件实现简易仪表盘的具体代码,供大家参考,具体内容如下

  

Qt自定义控件12:简易仪表盘(根据liudianwu大神的界面自己写的代码,建议去学习刘大神,会受益良多的)

  

先看效果图:

  

 Qt自定义控件实现简易仪表盘

  

思路:画270度的圆弧,圆弧根据占比分为两种颜色,根据占比在圆弧上画出一个圆球作为标志,然后就是刻度线和刻度值。刻度线是根据坐标系旋转画出,刻度值是根据角度求出x, y坐标值构造出一个矩形画出刻度值(不要用坐标系旋转画刻度值,那样刻度值的角度也会旋转,写出的字不是正的,效果不好)。最后就是在中心画价值。

  

关键代码:

        空白CMPassrate5: paintEvent (QPaintEvent *事件){   int宽度=这→宽度();   int高度=这→高度();   int一边=qMin(宽度、高度);      QPainter画家(这个);   画家。setRenderHints (QPainter::抗锯齿| QPainter: TextAntialiasing);   画家。翻译(宽/2,高/2);   画家。规模(边/200.0,边/200.0);      drawE(及画家);   drawEPoint(及画家);   画直线(及画家);   drawEText(及画家);   drawValue(及画家);   }      空白CMPassrate5: drawE (QPainter *画家){   QRect矩形(半径,半径,半径2 * 2 *半径);   画家→保存();   画家→setPen (Qt:: NoPen);      QPainterPath路径;   QPainterPath子路径;   QPainterPath outPath;   QPainterPath outPubPath;   outPath.arcTo(矩形、-45、超量程);   outPubPath.addEllipse (rect.adjusted(一边,另一边,一边侧));   outPath -=outPubPath;   color.setAlpha (100);   画家→setBrush(颜色);   画家→drawPath (outPath);         path.arcTo(矩形、-45 +超量程、范围);   subPath.addEllipse (rect.adjusted (4、4、4、4));   路径-=子路径;   color.setAlpha (180);   画家→setBrush(颜色);   画家→drawPath(路径);      画家→恢复();   }      空白CMPassrate5: drawEPoint (QPainter *画家){//圆球位置就在超量程尽头处   画家→保存();   color.setAlpha (180);   画家→setPen (Qt:: NoPen);   画家→setBrush(颜色);      浮动x=(radius-side/2) * qCos ((+ 135) * 3.14/180);   浮动y=(radius-side/2) * qSin ((+ 135) * 3.14/180);   qDebug () & lt; & lt;“x:”& lt; & lt; x<& lt;“y:”& lt; & lt; y;   画家→drawEllipse (QPoint (x, y),一面,一面);   画家→恢复();   }      空白CMPassrate5:画直线(QPainter *画家){   画家→保存();   画家→旋转(135);   color.setAlpha (100);   画家→setPen(颜色);   QLine线(QPoint (radius-side-lineLength, 0), QPoint (radius-side, 0));      for (int i=0; i      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Qt自定义控件实现简易仪表盘