1、使用QRegion做出一个圆环区域,使用QPainterPath添加这个区域,然后fillPath。
QPainter painter(this);
painter.save();
//设置反锯齿
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::Qt4CompatiblePainting);
QRect drawRect = event->rect();
QRegion region(drawRect.adjusted(10,10,-10,-10),QRegion::Ellipse);
drawRect.setSize(QSize(drawRect.width()/2,drawRect.height()/2));
drawRect.moveTopLeft(QPoint((event->rect().width() - drawRect.width())/2,(event->rect().height() - drawRect.height())/2));
QRegion region2(drawRect,QRegion::Ellipse);
QPainterPath painterPath;
painterPath.addRegion(region.subtracted(region2));
painter.fillPath(painterPath,Qt::red);
event->accept();
painter.restore();
1'、QPolygonF绘制中空图形 - 三角板
QPainter painter(this);
painter.save();
//设置反锯齿
painter.setRenderHints(QPainter::Antiali