1
出於測試目的,我試圖在場景上繪製幾個矩形並在其中添加一些文本。矩形應該顯示在一列中。他們是,但問題是文本不是。所有文本都堆疊在場景的左上角。QGraphicsItem在場景中的位置始終爲空
而且,pos()
和scenePos()
總是爲每個文本框和文本返回(0,0)。
下面是代碼負責人認爲:
QHash<QString,Picto> Palette::getPics(){
SpriteSheetManager ssm("sprite_zone");
QList<QString> picNames = ssm.finder->allPic(); //Get all string to be displayed
QHash<QString,Picto> picList;
for(int i = 0; i < picNames.size(); i++){
QString picName = picNames.at(i);
QGraphicsTextItem *label = new QGraphicsTextItem();
label->setPlainText(picName);
QGraphicsRectItem *rect = new QGraphicsRectItem();
rect->setRect(0,i*20,50,20);
label->setParentItem(rect);
label->setPos(0,0);
this->addItem(rect);
qDebug()<< rect->pos(); //always return (0,0)
}
return picList;
}
誰能告訴我什麼,我做錯了什麼?
我試過這個代碼有幾個變化,但我不能解決這個問題。
這意味着你必須移動標籤本身,不是嗎?我強硬它應該與它的父母一起移動,因爲它的位置應該是相對於父母的。 – Laetan 2014-10-20 11:50:04
@Laetan是的,我移動標籤。是的,它相對於父母,但正如你所說,你的父母每次都有0,0個座標,所以標籤的座標也是0,0。 – Chernobyl 2014-10-20 12:04:38
我知道,但這就是問題所在。爲什麼直角座標顯然不位於視圖上的0,0位置時總會有(0,0),並且我如何設置它以便正確的位置用於兒童物品? – Laetan 2014-10-20 12:24:55