我試圖創建將在與角蛋白文本(存儲在屬性)場景中繪製的自定義對象(矩形,它從QGraphicsItem繼承),但是當我縮放它時 - 我希望保留相同的文字大小。這是我的結局。塗料功能:Qt使用未縮放文本縮放自定義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 我嘗試添加另一種方式,我nfucntion創建,並增加了我的矩形場景(在這裏 - 一個名爲「NEWOBJECT」),但結果還是一樣。
QGraphicsTextItem* GTI = new QGraphicsTextItem(newObject->toStringForScene(), newObject);
我開始認爲我應該創建每個文本對象作爲分離的對象並保存它不同的列表。 Ofcours,我不得不更新它,每當它的對象被移動。
這沒有工作得很好,因爲我的預期。它忽略正確地向上/向下縮放其父對象,而且 - 忽略縮小/放大。 – Arker
是的,它忽略放大/縮小。我認爲這是你想要的。對不起,我沒有正確理解你的問題。 – Tomas