自定义QPushButton外部轮廓
类声明如下:
class CHexagon : public QPushButton
{
public:
CHexagon(QWidget *parent=0);
virtual ~CHexagon() {}
protected:
void paintEvent(QPaintEvent* pEvent);
};
类的定义:
CHexagon::CHexagon(QWidget *parent):QPushButton(parent)
{
}
void CHexagon::paintEvent(QPaintEvent *pEvent)
{
Q_UNUSED(pEvent)
QStylePainter p(this);
QStyleOptionButton option;
initStyleOption(&option);
QRectF rectF = rect();
QVector<QPointF> points;
points.append(rectF.topLeft() + QPointF(0.25*rectF.width(), 0));
points.append(rectF.topRight() + QPointF(1, 0) - QPointF(0.25*rectF.width(), 0));
points.append((rectF.topRight() + QPointF(1,