C++ 向QGraphicscene添加项时的两个错误
我正在尝试使用qt开发一个项目,但在向场景添加项目时,我遇到了两个问题! 我有一个包含背景对象的类,它在其构造函数中获取指向场景的指针C++ 向QGraphicscene添加项时的两个错误,c++,qt,C++,Qt,我正在尝试使用qt开发一个项目,但在向场景添加项目时,我遇到了两个问题! 我有一个包含背景对象的类,它在其构造函数中获取指向场景的指针 我尝试了“场景->添加项(此)”将背景添加到场景中。但是,在运行项目时,据报告该项目已添加到场景中!这里是我唯一调用addItem的地方 我还尝试创建一些类的新对象,并将它们放在QList中。添加这些项目时,这些项目根本不会出现在场景中 下面是课堂: class Test : public QObject, public QGraphicsPixmapItem{
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;
}
p.S.A是继承B的类,B本身继承公共QObject和公共QGraphicsPixmapItem。该列表还包含来自类型(B*)的两个对象。我会这样做,没有时间检查它是否编译等。。把它当作半个答案——但它仍然可以帮助你 您的问题:
WindowClass(etc) : Parent(etc) { //constructor
QGraphicsScene *scene = new ....;
Test *test = new Test(this, 0);//can be better, lazy to think of the details
connect(test, SIGNAL(mousePressed()), this, SLOT(on_testMousePressed());
scene->addItem(test);
}
void on_testMousePressed() {
list.push_back(new A(QPixmap("b.png")));
scene->addItem(list.back());
}
我会这样做,没有时间检查它是否编译等。。把它当作半个答案——但它仍然可以帮助你 您的问题:
WindowClass(etc) : Parent(etc) { //constructor
QGraphicsScene *scene = new ....;
Test *test = new Test(this, 0);//can be better, lazy to think of the details
connect(test, SIGNAL(mousePressed()), this, SLOT(on_testMousePressed());
scene->addItem(test);
}
void on_testMousePressed() {
list.push_back(new A(QPixmap("b.png")));
scene->addItem(list.back());
}
请去吧。。创建另一个项目,使触发问题的代码量尽可能少。。缺少很多代码(什么是myCardDeck,spc::cardNo…)。。顺便说一句,多个ifs看起来horrible@otopolsky这是编辑。这正是我正在做的。您是否有类似于
scene->addItem(新测试(场景))
的代码?如果没有@otopolsky要求的答案,任何人都只能猜测。@G.M.不,我没有,我也没有为它设置任何家长。请做吧。。创建另一个项目,使触发问题的代码量尽可能少。。缺少很多代码(什么是myCardDeck,spc::cardNo…)。。顺便说一句,多个ifs看起来horrible@otopolsky这是编辑。这正是我正在做的。您是否有类似于scene->addItem(新测试(场景))
的代码?如果没有@otopolsky要求的答案,任何人都只能猜测。@G.M.不,我没有,我也没有为此设置任何家长。谢谢推荐。我会记住的。不幸的是,在我的情况下,他们都不起作用:(@Athena,如果你想把你的整个项目发布到某个地方,我可以试试。如果你现在有不同的错误,你也可以重新发布。你可以在我的github帐户中跟踪这个项目。是吗?有很多文件。奇怪的目录结构。但是无论如何,如果我有时间,我会看看it@Athena你至少可以告诉我哪些课程是你有问题的那个…谢谢你的建议。我会记住的。不幸的是,在我的情况下,没有一个有效:(@Athena,如果你想把你的整个项目发布到某个地方,我可以试试。如果你现在有不同的错误,你也可以重新发布。你可以在我的github帐户中跟踪这个项目。是吗?有很多文件。奇怪的目录结构。但是无论如何,如果我有时间,我会看看it@Athena你至少可以告诉我哪些课程是你有问题的那个。。