有人知道为什么QRectF right()/bottom()方法的行为不同于QRect吗?
下面的例子
QRectF r1(0, 0, 20, 20);
qDebug() << r1.right();
QRect r2(0, 0, 20, 20);
qDebug() << r2.right();返回以下结果:
20
19当我尝试测量width()时,两个函数都返回20
QRectF r1(0, 0, 20, 20);
qDebug() << r1.width();
QRect r2(0, 0, 20, 20);
qDebug() << r2.width();
20
20我试图查看文档,但我没有找到任何提到这些差异的地方。
这是什么原因呢?在没有抗锯齿的情况下,如何在QGraphicsItem的情况下使用QRectF绘制1像素宽度的线条?我应该总是调整boundingRect().adjust(0,0,-1,-1)吗?
发布于 2020-07-10 18:00:16
参加聚会有点晚了。但今天我遇到了同样的问题。查看Qt文档发现,所有用于访问bottom和right的方法都承担着一些“历史负担”(例如QRect::bottom()):
请注意,由于历史原因,此函数返回top() + height() - 1;使用y() + height()检索真正的y坐标。
另请参阅Qt-Docs
https://stackoverflow.com/questions/58304501
复制相似问题