我尝试使用drawRoundedRect
方法直接在QPixmap
中绘制一个圆角矩形(这里没有涉及任何渲染引擎,只有纯Qt ...),我仔细检查了矩形的大小与我的像素图的大小:
Pixmap : QSize(50, 73)
Rectangle: QRect(0,0 48x11)
看到了很多空间...
编辑:一些代码
pixmap = QPixmap(50,73); //example size that match my case
QRectF rect(0,0,48,11);
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::TextAntialiasing);
painter.setWorldMatrixEnabled(false);
painter.setPen(QPen()); //no pen
painter.setBrush(QBrush(color));
painter.drawRoundedRect(rect, 2.0, 2.0);
- 我禁用了世界变换...
- 我将转换设置为统一...
- 我尝试了几个半径 (1.0、2.0、3.0、4.0)...
- 我改变了笔宽、画刷颜色...
但它总是以一个有四个不同角落的矩形结束!就像这样:
我直接将像素图输出到文件中,以确保在显示过程中没有对其进行修改...但形状仍然相同。
有人知道如何使用Qt创建小半径的圆角矩形吗?我很久以前看到过一些关于它的东西,但我不记得该如何处理它了!
QPainter p(this); p.setRenderHint(QPainter::Antialiasing); p.setRenderHint(QPainter::HighQualityAntialiasing);
为我解决了这个问题。 - S B