item.width=10 と item.height=10の QGrahicsRectItemアイテムがあるとします。その左上隅は (0,0) です。item.BoundingRect()
を返す必要RectF(0,0,9,9)
がありますが、代わりにRectF(0,0,10,10)
次のコードでテストできます。
QGraphicsRectItem* item = new QGraphicsRectItem(0,0,10,10);
qDebug() << item->boundingRect().width(); // 10, OK
qDebug() << item->boundingRect().height(); // 10, OK
qDebug() << item->boundingRect().topLeft().x(); // 0, OK
qDebug() << item->boundingRect().topLeft().y(); // 0, OK
qDebug() << item->boundingRect().bottomRight().x(); // 10, WHY? should be 9
qDebug() << item->boundingRect().bottomRight().y(); // 10, WHY? should be 9
したがって、boundingRect() は幅と高さが 11px の RectF を返しますが、width() と height() はどちらも 10 であると主張しています。
どうしたの?