QT自定义button绘制
重载QPushButton的paintEvent(QPaintEvent *e)
void paintEvent(QPaintEvent *e)
{
QPushButton::paintEvent(e);
//设置画布
QPainter painter(this);
//设置原点,默认原点为左上角
painter.setWindow(0,0,width(),height());
//设置渲染效果,抗锯齿
painter.setRenderHint(QPainter::Antialiasing,true)
//设置画刷
QBrush brush(QColor(0,0,0); #设置填充颜色
QBrush brush(Qt::QBrushStyle); #设置填充图案
painter.setBrush(brush);
//绘制画布,填充区域
painter.drawRoundedRect(QRect(0,0,width(),height()),0,0);
//设置QPen
QPen pen(QColor(0,0,0)); #设置颜色
pen.setWidth(1); #设置粗细
pen.setStyle(Qt::DashLine); #设置线条风格为虚线
pen.setDashPattern(QVector<qreal>() << 1 << 2); #设置实线与虚线的间隔
painter.setPen(pen); #设置pen
//绘制图形
painter.drawLine(0,0,1,1); #绘制直线(0,0)-(1,1)
QPolygonF points; #多边形按照放入的顺序进行连线
painter.drawPolygon(points); #绘制封闭多边形
}