void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::TextAntialiasing);
qreal R=100; //qreal == double
const qreal pi = 3.14159;
qreal deg=pi*72/180;
QPoint points[]
{
QPoint(R,0),
QPoint(R*std::cos(deg),-R*std::sin(deg)),
QPoint(R*std::cos(2*deg),-R*std::sin(2*deg)),
QPoint(R*std::cos(3*deg),-R*std::sin(3*deg)),
QPoint(R*std::cos(4*deg),-R*std::sin(4*deg)),
};
//设置字体
QFont font;
font.setPointSize(12);
font.setBold(true);
painter.setFont(font);
//设置画笔
QPen penline;
penline.setWidth(2); //线宽
penline.setColor(Qt::blue);//划线颜色
penline.setStyle(Qt::SolidLine);//线的类型
penline.setCapStyle(Qt::FlatCap); //线端点样式
penline.setJoinStyle(Qt::BevelJoin); //线的连接点样式
painter.setPen(penline);
//设置画刷
QBrush brush;
brush.setStyle(Qt::SolidPattern);
brush.setColor(Qt::yellow);
painter.setBrush(brush);
//设计绘制五角星的painterPATH 重复使用
QPainterPath starPath;
starPath.moveTo(points[0]);
starPath.lineTo(points[2]);
starPath.lineTo(points[4]);
starPath.lineTo(points[1]);
starPath.lineTo(points[3]);
starPath.closeSubpath();//闭合路径,最后一个点与第一个点相连
starPath.addText(points[0],font,"0");
starPath.addText(points[1],font,"1");
starPath.addText(points[2],font,"2");
starPath.addText(points[3],font,"3");
starPath.addText(points[4],font,"4");
//绘图
painter.save();
painter.translate(100,120);
painter.drawPath(starPath);
painter.drawText(0,0,"1");
painter.restore();
}