#include
#include
class QTipButton : public QPushButton
{
public:
QTipButton(QWidget *parent);
virtual ~QTipButton(void);
virtual void paintEvent(QPaintEvent * event);
void setButtonNum(int buttonNum);
private:
int _buttonNum=0;
};
#include “qtipbutton.h”
#include “qpainter.h”
#include “QRgb”
QTipButton::QTipButton(QWidget *parent)
: QPushButton(parent)
{
}
QTipButton::~QTipButton(void)
{
}
void QTipButton::paintEvent(QPaintEvent * event)
{
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);//抗锯齿,反走样
QRect rt = rect();
QRect rt1 = QRect(rt.left()+rt.width()*0.70, (rt.top()+rt.height()*0.15), rt.height()*0.7, rt.height()*0.7);
QRect rt2 = QRect(rt.left(), rt.top(),
rt.width(), rt.height());
if(this->isChecked())
{
painter.fillRect(rt2, QColor(34,160,108));
painter.setPen(Qt::white);
painter.drawText(rt, Qt::AlignCenter, text());
}
else
{
painter.fillRect(rt2, QColor(71, 102, 92));
painter.setPen(Qt::white);
painter.drawText(rt, Qt::AlignCenter, text());
}
painter.setPen(QColor(163, 0, 20));
painter.setBrush(QBrush(Qt::red));
if( _buttonNum!=0)
{
painter.drawEllipse(rt1);
}
painter.setPen(Qt::white);
if( _buttonNum!=0)
{
painter.drawText(rt1, Qt::AlignCenter, QString::number(_buttonNum));
}
}
void QTipButton::setButtonNum(int buttonNum)
{
_buttonNum = buttonNum;
}