Qt,设置独占裁剪区域

Qt, Set an exclusive clipping region

在 Qt 中,您可以使用 ReplaceClip 或 IntesectClip 模式为 QPainter 设置剪辑区域,但我错过了 "ExcludeClip"。您将如何绘制(填充)"donut"(带有透明孔的圆圈)而不恢复为中间 QPixmaps?

找到一个使用区域操作的解决方案:

QRegion rg1(outerRect,QRegion::Ellipse);
QRegion rg2(innerRect,QRegion::Ellipse);
QRegion rg3=rg1.subtracted(rg2);

painter->setClipRegion(rg3);