将QPixmap绘制成圆形?

时间:2013-07-16 09:22:40

标签: c++ qt qt5 qpainter qpixmap

我可以画一个QPixmap就好了:

QPainter painter;
painter.drawPixmap(x, y, w, h, my_pixmap);

我还可以画一个圆圈:

painter.drawArc(x, y, w, h, a, alen);

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

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

camel

这可能吗?

1 个答案:

答案 0 :(得分:5)

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

QPainterPath path;
path.addEllipse(x, y, w, h);
painter.setClipPath(path);
painter.drawPixmap(x, y, w, h, my_pixmap);