Qt 构造函数中QGraphicscene*场景出错
嗨,我仍然有一个问题与QGraphicscene 我创建了一个名为Gioco的小部件,并在构造函数中声明了*场景Qt 构造函数中QGraphicscene*场景出错,qt,qgraphicsscene,Qt,Qgraphicsscene,嗨,我仍然有一个问题与QGraphicscene 我创建了一个名为Gioco的小部件,并在构造函数中声明了*场景 Gioco::Gioco() { QGraphicsScene *scene = new QGraphicsScene(); scene -> setSceneRect(0,0,1980,1200); setScene(scene); } 现在我想在一个空白中使用相同的*场景,但我得到了对*场景的错误未定义引用 void Gioco::partita(
Gioco::Gioco()
{
QGraphicsScene *scene = new QGraphicsScene();
scene -> setSceneRect(0,0,1980,1200);
setScene(scene);
}
现在我想在一个空白中使用相同的*场景,但我得到了对*场景的错误未定义引用
void Gioco::partita()
{extern QGraphicsScene *scene;
//create a new Pixmap Item
QGraphicsPixmapItem *img_mazzo = new QGraphicsPixmapItem();
img_mazzo -> setPixmap(QPixmap(":/Media/Immagini/dorso.jpg"));
//add to scene
scene -> addItem(img_mazzo);
}
如何解决此错误?
谢谢您得到了错误,因为
外部QGraphicscene*场景
声明了一个未在任何地方定义的全局变量
您可能希望场景成为成员变量,而无需使用显式动态分配:
class Gioco {
QGraphicsScene m_scene;
public:
Gioco();
void partita();
};
auto const kImmaginiDorso = QStringLiteral(":/Media/Immagini/dorso.jpg");
Gioco::Gioco() {
m_scene.setSceneRect(0,0,1980,1200);
setScene(&m_scene);
}
void Gioco::partita() {
auto mazzo = new QGraphicsPixmapItem;
mazzo->setPixmap(QPixmap(kImmaginiDorso));
m_scene.addItem(mazzo);
}
出现错误是因为
外部QGraphicscene*场景
声明了一个未在任何地方定义的全局变量
您可能希望场景成为成员变量,而无需使用显式动态分配:
class Gioco {
QGraphicsScene m_scene;
public:
Gioco();
void partita();
};
auto const kImmaginiDorso = QStringLiteral(":/Media/Immagini/dorso.jpg");
Gioco::Gioco() {
m_scene.setSceneRect(0,0,1980,1200);
setScene(&m_scene);
}
void Gioco::partita() {
auto mazzo = new QGraphicsPixmapItem;
mazzo->setPixmap(QPixmap(kImmaginiDorso));
m_scene.addItem(mazzo);
}
谢谢“汽车”这个词的功能是什么?@davidererari它代表了一个新的概念。使用时,它提高了代码的可读性,并允许您键入更少的内容。现代IDE将像编译器一样推断类型,因此
mazzo
将得到完成,等等。谢谢!!“汽车”这个词的功能是什么?@davidererari它代表了一个新的概念。使用时,它提高了代码的可读性,并允许您键入更少的内容。现代IDE将像编译器一样推断类型,因此mazzo
将得到完成,等等。