void mySliderButton::drawBg(QPainter *painter) { painter->save(); painter->setPen(Qt::NoPen); QLinearGradient BgGradient(QPoint(0,0),QPoint(0,height())); BgGradient.setColorAt(0.0,PYSB_BG_START_COLOR); BgGradient.setColorAt(1.0,PYSB_BG_END_COLOR); painter->setBrush(BgGradient); painter->drawRoundedRect(rect(),PYSB_RECT_RADIUS,PYSB_RECT_RADIUS); painter->restore(); }
/*! painting functions */ void PYHistogramTip::draw(QPainter *painter) { painter->save(); QPainterPath BgPath; if(m_bLeft) { QPointF LeftPot(0,PYHT_BG_TOP_SPACE*2); QPointF LeftTopPot(PYHT_BG_LEFT_SPACE,PYHT_BG_TOP_SPACE); QPointF TopLeftPot(PYHT_BG_LEFT_SPACE,0); QPointF RightTopPot(width(),0); QPointF RightBottomPot(width(),height()); QPointF LeftBottomPot(PYHT_BG_LEFT_SPACE,height()); QPointF LeftBottomTopPot(PYHT_BG_LEFT_SPACE,PYHT_BG_TOP_SPACE*2); BgPath.moveTo(LeftPot); BgPath.lineTo(LeftTopPot); BgPath.lineTo(TopLeftPot); BgPath.lineTo(RightTopPot); BgPath.lineTo(RightBottomPot); BgPath.lineTo(LeftBottomPot); BgPath.lineTo(LeftBottomTopPot); BgPath.lineTo(LeftPot); }else{ QPointF TopLeftPot(0,0); QPointF TopRightPot(width() - PYHT_BG_LEFT_SPACE,0); QPointF RightTopPot(width() - PYHT_BG_LEFT_SPACE,PYHT_BG_TOP_SPACE); QPointF RightPot(width(),height()/2); QPointF RightBottomPot(width() - PYHT_BG_LEFT_SPACE,height()/2); QPointF BottomRightPot(width()-PYHT_BG_LEFT_SPACE,height()); QPointF BottomLeftPot(0,height()); BgPath.moveTo(TopLeftPot); BgPath.lineTo(TopRightPot); BgPath.lineTo(RightTopPot); BgPath.lineTo(RightPot); BgPath.lineTo(RightBottomPot); BgPath.lineTo(BottomRightPot); BgPath.lineTo(BottomLeftPot); BgPath.lineTo(TopLeftPot); } painter->setPen(Qt::NoPen); #ifdef PYHT_BG_APPLY_LINEARGRADIENT QLinearGradient BgGradient(QPoint(0,0),QPoint(0,height())); BgGradient.setColorAt(0.0,PYHT_BG_START_COLOR); BgGradient.setColorAt(1.0,PYHT_BG_END_COLOR); painter->setBrush(BgGradient); #else painter->setBrush(PYHT_BG_BRUSH_COLOR); #endif #ifdef PYHT_SCHEME2 QLinearGradient Scheme2Gradient(QPoint(0,0),QPoint(0,height())); Scheme2Gradient.setColorAt(0.0,PYHT_BG_START_COLOR); Scheme2Gradient.setColorAt(1.0,PYHT_BG_END_COLOR); painter->setBrush(Scheme2Gradient); #endif #ifdef PYHT_SCHEME3 QLinearGradient Scheme3Gradient(QPoint(0,0),QPoint(0,height())); Scheme3Gradient.setColorAt(0.0,PYHT_BG_START_COLOR); Scheme3Gradient.setColorAt(1.0,PYHT_BG_END_COLOR); painter->setBrush(Scheme3Gradient); #endif painter->drawPath(BgPath); QPointF TextPot(PYHT_BG_LEFT_SPACE*2,PYHT_BG_TOP_SPACE*2); painter->setPen(PYHT_TEXT_COLOR); #if 1 QFont TextFont; TextFont.setBold(true); painter->setFont(TextFont); #endif painter->drawText(TextPot,m_strTip); painter->restore(); qreal TextLength = fontMetrics().width(m_strTip); m_width = PYHT_BG_LEFT_SPACE * 2 + TextLength * 1.5 ; m_height = PYHT_BG_TOP_SPACE * 2 + fontMetrics().height(); setFixedSize(QSize(m_width,m_height)); }