简述
Qt提供的QPainterPath类为绘制操作提供了一个容器,使图形形状能够被构建和重用。其填充规则有Qt::OddEvenFill和Qt::WindingFill之分,使用Qt::OddEvenFill后重叠的path部分会消失,使用Qt::WindingFill后重叠的path部分不会消失,但是后者使用不当还是会出现重叠消失的情况。
效果
代码
QPainterPath MainWnd::makeEllipsePath(const QRectF &rect, Qt::FillRule rule, float angleI, float angleO, float size)
{
QPainterPath path;
path.setFillRule(rule);
QPointF offset(size, size);
QRectF rectO = QRectF(rect.topLeft() - offset, rect.bottomRight() + offset);
QRectF rectI = QRectF(rect.topLeft() + offset, rec