/*trianglebutton.h*/
#include <QPushButton>
#include <QPaintEvent>
#include <QColor>
class TriangleButton : public QPushButton
{
public:
QColor brushColor;
TriangleButton(QWidget* parent=0);
void paintEvent(QPaintEvent *e);
void mousePressEvent(QMouseEvent* e);
void mouseReleaseEvent(QMouseEvent* e);
};
/*trianglebutton.cpp*/
#include "trianglebutton.h"
#include <QPainter>
#include <QDebug>
TriangleButton::TriangleButton(QWidget *parent):QPushButton(parent)
{
this->setWindowFlag(Qt::FramelessWindowHint);
setFixedSize(200,200);
setAttribute(Qt::WA_TranslucentBackground);
setStyleSheet("QPushButton{border:0px;}");
brushColor = Qt::red;
}
void TriangleButton::paintEvent(QPaintEvent *e)
{
QPainter p(this);
p.setPen(Qt::black);
p.setBrush(brushColor);
static const QPointF points[3] = {
QPointF(100, 0),
QPointF(0, 200),
QPointF(200, 200),
};
p.drawConvexPolygon(points, 3);
qDebug()<<"aa";
}
void TriangleButton::mousePressEvent(QMouseEvent *e)
{
brushColor = Qt::blue;
update();
}
void TriangleButton::mouseReleaseEvent(QMouseEvent *e)
{
brushColor = Qt::red;
update();
}
简单实现三角形按钮的实现,也可以通过重绘图片实现,记录下来,供参考