【发布时间】:2016-03-11 14:02:24
【问题描述】:
我正在尝试创建 customObject(矩形,它继承自 QGraphicsItem),它将在场景上绘制带有特定文本(存储在属性中),但是当我缩放它时 - 我希望保持相同大小的文本。这是我的结束。绘画功能:
void CustomRectangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *widget)
{
QColor currentColor = get_ColorByCurrentState();
QRectF rect = boundingRect();
QPen pen(currentColor, Own_LineWidith);
painter->setPen(pen);
painter->drawRect(rect);
QRectF rect_text(rect.x(), rect.y(),100,100);
painter->drawText(rect_text,this->getText() );
}
还有我的两个缩放函数:
void CustomObject::scaleUp()
{
scale(ScaleFactor_X,ScaleFactor_Y);
}
void CustomObject::scaleDown()
{
scale(1/ScaleFactor_X,1/ScaleFactor_Y);
}
但文本仍然会随着矩形缩放。
编辑 1 我尝试以另一种方式添加它,即创建矩形并将其添加到场景中(此处 - 名为“newObject”),但结果仍然相同。
QGraphicsTextItem* GTI = new QGraphicsTextItem(newObject->toStringForScene(), newObject);
我开始认为我应该将每个文本对象创建为单独的对象并将其保存为不同的列表。当然,每当它移动对象时,我都必须更新它。
【问题讨论】:
标签: c++ qt text qgraphicsitem