【发布时间】:2016-07-14 08:46:07
【问题描述】:
我正在尝试使用 qt 开发一个项目,但在向场景中添加项目时遇到了两个问题! 我有一个包含背景对象的类,它在其构造函数中获取指向我的场景的指针。
我尝试使用“scene->addItem(this)”将背景添加到场景中。但是,在运行项目时,据报道该项目已经添加到场景中!这是我唯一调用 addItem 的地方。
我也在尝试创建一些类的新对象并将它们放入 QList 中。添加它们时,这些项目根本不会出现在场景中!
这是课程:
class Test : public QObject, public QGraphicsPixmapItem{
Q_OBJECT
public:
Test(QGraphicsScene *s){
scene = s;
setPixmap(QPixmap("a.jpg"));
setPos(0, 0);
scene->addItem(this);
}
void mousePressEvent(QGraphicsSceneMouseEvent *event){
list.push_back(new A(QPixmap("b.png")));
scene->addItem(list.back());
}
private:
QGraphicsScene *scene;
}
附: A 是继承 B 的类,它本身继承公共 QObject 和公共 QGraphicsPixmapItem。该列表还包含几个来自 type(B *) 的对象。
【问题讨论】: