【发布时间】:2016-04-27 04:53:10
【问题描述】:
出于测试目的,我尝试在场景中绘制几个矩形并在其中添加一些文本。矩形应该显示在一列中。它们是,但问题是文本不是。所有文本都堆叠在场景的左上角。
此外,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;
}
谁能告诉我我做错了什么?
我已经尝试了这个代码有几个变体,但我无法解决这个问题。
【问题讨论】:
标签: c++ qt qgraphicsitem