xlabel.cpp 905 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "xlabel.h"
  2. XLabel::XLabel(QWidget *parent) :
  3. QLabel(parent)
  4. {
  5. m_v = 0;
  6. }
  7. void XLabel::setValue(int v)
  8. {
  9. m_v = v;
  10. update();
  11. }
  12. void XLabel::paintEvent(QPaintEvent *e)
  13. {
  14. QLabel::paintEvent(e);
  15. if(m_v>0)
  16. {
  17. QPainter painter(this);
  18. QRect rect(10,-2,18,18);
  19. QFont font("Arial",8,QFont::Bold,false);
  20. painter.setPen(QColor(Qt::red));
  21. painter.setBrush(QBrush(Qt::red,Qt::SolidPattern));
  22. painter.drawEllipse(10,0,15,15);
  23. painter.setPen(QColor(Qt::white));
  24. painter.setFont(font);
  25. if(m_v>=10)
  26. painter.drawText(rect,Qt::AlignCenter|Qt::AlignVCenter,"9+");
  27. else
  28. painter.drawText(rect,Qt::AlignCenter|Qt::AlignVCenter,QString::number(m_v));
  29. }
  30. return;
  31. }
  32. void XLabel::resizeEvent(QResizeEvent *e)
  33. {
  34. QLabel::resizeEvent(e);
  35. }