将QPixmap绘制成圆形?

Mar*_*nen 0 c++ qt qpixmap qpainter qt5

我可以画一个QPixmap很好的:

QPainter painter;
painter.drawPixmap(x, y, w, h, my_pixmap);
Run Code Online (Sandbox Code Playgroud)

我也可以画一个圆圈:

painter.drawArc(x, y, w, h, a, alen);
Run Code Online (Sandbox Code Playgroud)

现在我想把这两者结合起来; 我的pixmap可能并不总是一个圆圈(=透明的角落),所以我不能只在屏幕上绘制整个像素图.这意味着我只需要绘制像素图的中心.

这是一张让它更清晰的图片:

骆驼

这可能吗?

Dan*_*urn 5

是的,您应该可以通过在画家上设置剪辑路径来完成此操作.这样的事情应该有效:

QPainterPath path;
path.addEllipse(x, y, w, h);
painter.setClipPath(path);
painter.drawPixmap(x, y, w, h, my_pixmap);
Run Code Online (Sandbox Code Playgroud)