【发布时间】:2021-08-30 10:08:24
【问题描述】:
我尝试在定义的位置添加带有文本的QGraphicsTextItem,但文本始终位于 QGraphicsWidget 的左上角。这是简单的代码:
QGraphicsTextItem* textItem= new QGraphicsTextItem(QString::number(i));
textItem->setFont(QFont("Helvetica", 12));
textItem->setTextWidth(50);
textItem->setDefaultTextColor(QColor(255, 255, 255));
textItem->setPos(QPoint(300,300)));
然后我读到QGraphicsTextItem 有自己的boundingBox 并且边界框可能在(0,0) 有leftTop 角。这就是我尝试更改边界框坐标的原因:
textItem->boundingRect().setWidth(50);
textItem->boundingRect().setHeight(50);
textItem->boundingRect().setTopLeft(QPoint(100,100));
但是当我在这些更改之后打印boundingBox size 和 topLeft 坐标时,总是相同的:
textItem->boundingRect();
std::cout << textItem.topLeft().x() << std::endl;
std::cout << textItem.topLeft().y() << std::endl;
std::cout << textItem.height() << std::endl;
std::cout << textItem.width() << std::endl;
结果:
0
0
32
50
您对如何将文本移动到设定位置有什么建议吗?
【问题讨论】:
-
我不明白,你想用鼠标改变它的位置吗?或者你想把它设置在某个位置
-
在某一点。但即使我添加 setPos(Qpoint(300,300)),它也总是在 (0,0) 中。