【发布时间】:2021-01-30 08:25:51
【问题描述】:
这是一段非常基本的代码:
- 测量一段文本的大小。
- 在坐标 (100, 25) 处绘制与此大小对应的矩形。
- 在坐标 (100, 25) 处显示文本。
auto str = "Hello, World!";
auto metrix = window->fontMetrics();
auto text = scene->addText(str);
text->setPos(100, 25);
text->setDefaultTextColor(Qt::white);
auto r = metrix.boundingRect(str);
int x, y, w, h;
r.getRect(&x, &y, &w, &h);
scene->addRect(100, 25, w, h, QPen(Qt::white));
代码中的scene 是一个QGraphicsScene,没有特定的自定义,除了边框设置为零。
我希望文本正好在矩形内。然而,文本向左移动了几个像素,向下移动了几个像素。为什么?
【问题讨论】:
-
@drescherjm:我应该指定文本是在
QGraphicsScene上绘制的。如果我理解正确,文本没有实际限制,即它可能不会完全显示在场景中,但不应该有自动换行或类似的东西。