void CThermoMeterItem::drawMark(QPainter *painter) { painter->save(); qreal initY=m_topSpace; qreal initX=m_markSpace; qreal length=boundingRect().height()-2*m_topSpace; qreal increment=length/100; painter->setPen(m_markClr); // draw vertical line QPointF topPot(m_markSpace,m_topSpace); QPointF bottomPot(m_markSpace,boundingRect().height()-m_topSpace); painter->drawLine(topPot,bottomPot); int vvalue=100; QString strValue; for(int i=0;i<=100;i++) { if(i%10==0) { QPointF leftPot(initX+LONG3,initY); QPointF rightPot(initX,initY); painter->drawLine(leftPot,rightPot); strValue=tr("%1").arg(vvalue); qreal fontWidth=painter->fontMetrics().width(strValue); qreal fontHeight=painter->fontMetrics().height(); QPointF textPot(initX-fontWidth-5,initY+fontHeight/2); painter->drawText(textPot,strValue); vvalue-=10; } else if(i%5==0 && i%10!=0) { QPointF leftPot(initX+OK3,initY); QPointF rightPot(initX,initY); painter->drawLine(leftPot,rightPot); } else { QPointF leftPot(initX+SHORT3,initY); QPointF rightPot(initX,initY); painter->drawLine(leftPot,rightPot); } initY+=increment; } painter->restore(); }
void PerfMon::drawFrame(QPainter *painter) { painter->save(); QPen framePen(m_frameClr); framePen.setStyle(Qt::DotLine); painter->setPen(framePen); painter->drawRect(rect()); qreal yIncrement=(qreal)height()/10; qreal xIncrement=(qreal)width()/10; qreal startX=0; qreal startY=0; for(int i=0;i<10;i++) { // draw horizontal lines QPointF leftPot(0,startY); QPointF rightPot(width(),startY); startY+=yIncrement; painter->drawLine(leftPot,rightPot); // draw vertical lines QPointF topPot(startX,0); QPointF bottomPot(startX,height()); startX+=xIncrement; painter->drawLine(topPot,bottomPot); } painter->restore(); }
void CIndicator::drawBars(QPainter* painter) { painter->save(); painter->setPen(QPen(INDICATOR_FRAME_COLOR,INDICATOR_PEN_WIDTH)); qreal left=m_rectTopLeft.x(); qreal right=m_rectBottomRight.x(); qreal top=m_rectTopLeft.y(); qreal bottom=m_rectBottomRight.y(); qreal increment=(bottom-top)/10; while(top<bottom) { QPointF leftPot(left,top); QPointF rightPot(right,top); painter->drawLine(leftPot,rightPot); top+=increment; } painter->restore(); }