构造函数中的 QGraphicsScene * 场景错误
Error with QGraphicsScene *scene in constructor
嗨,我仍然遇到 QGraphicsScene 的问题
我创建了一个名为 Gioco 的小部件,并在构造函数中声明了 *scene
Gioco::Gioco()
{
QGraphicsScene *scene = new QGraphicsScene();
scene -> setSceneRect(0,0,1980,1200);
setScene(scene);
}
现在我想在空白中使用相同的 *scene 但我收到错误 undefined reference to *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);
}
我该如何解决这个错误?
谢谢
您收到错误是因为 extern QGraphicsScene * scene
声明了一个未在任何地方定义的全局变量。
你可能希望场景是一个成员变量,不需要使用显式动态分配:
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);
}
嗨,我仍然遇到 QGraphicsScene 的问题
我创建了一个名为 Gioco 的小部件,并在构造函数中声明了 *scene
Gioco::Gioco()
{
QGraphicsScene *scene = new QGraphicsScene();
scene -> setSceneRect(0,0,1980,1200);
setScene(scene);
}
现在我想在空白中使用相同的 *scene 但我收到错误 undefined reference to *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);
}
我该如何解决这个错误? 谢谢
您收到错误是因为 extern QGraphicsScene * scene
声明了一个未在任何地方定义的全局变量。
你可能希望场景是一个成员变量,不需要使用显式动态分配:
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);
}