SIGSEGV when using inherited QGraphicsScene
I'm trying to inherit from a QGraphicsScene but somehow that crashes my program when I try to use it. I guess somewhere I'm missing a small thing, but I couldn't figure it out. Here is a minimal example of what I tried so far:
myscene.h
#ifndef MYSCENE_H
#define MYSCENE_H
#include <QGraphicsScene>
class MyScene : public QGraphicsScene
{
Q_OBJECT
QPen* pen_bg;
public:
explicit MyScene(QObject* parent=nullptr);
~MyScene();
};
#endif // MYSCENE_H
myscene.cpp
#include "myscene.h"
MyScene::MyScene(QObject* parent):
QGraphicsScene (parent)
{
pen_bg = new QPen(Qt::blue);
}
MyScene::~MyScene()
{
delete pen_bg;
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "myscene.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
MyScene *m_scene = new MyScene(this);
ui->graphicView->setScene(m_scene);
}
As soon as I call the setScene(m_scene) function, the program crashes with a SIGSEGV.
c++ qt inheritance qwidget qgraphicsscene
add a comment |
I'm trying to inherit from a QGraphicsScene but somehow that crashes my program when I try to use it. I guess somewhere I'm missing a small thing, but I couldn't figure it out. Here is a minimal example of what I tried so far:
myscene.h
#ifndef MYSCENE_H
#define MYSCENE_H
#include <QGraphicsScene>
class MyScene : public QGraphicsScene
{
Q_OBJECT
QPen* pen_bg;
public:
explicit MyScene(QObject* parent=nullptr);
~MyScene();
};
#endif // MYSCENE_H
myscene.cpp
#include "myscene.h"
MyScene::MyScene(QObject* parent):
QGraphicsScene (parent)
{
pen_bg = new QPen(Qt::blue);
}
MyScene::~MyScene()
{
delete pen_bg;
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "myscene.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
MyScene *m_scene = new MyScene(this);
ui->graphicView->setScene(m_scene);
}
As soon as I call the setScene(m_scene) function, the program crashes with a SIGSEGV.
c++ qt inheritance qwidget qgraphicsscene
add a comment |
I'm trying to inherit from a QGraphicsScene but somehow that crashes my program when I try to use it. I guess somewhere I'm missing a small thing, but I couldn't figure it out. Here is a minimal example of what I tried so far:
myscene.h
#ifndef MYSCENE_H
#define MYSCENE_H
#include <QGraphicsScene>
class MyScene : public QGraphicsScene
{
Q_OBJECT
QPen* pen_bg;
public:
explicit MyScene(QObject* parent=nullptr);
~MyScene();
};
#endif // MYSCENE_H
myscene.cpp
#include "myscene.h"
MyScene::MyScene(QObject* parent):
QGraphicsScene (parent)
{
pen_bg = new QPen(Qt::blue);
}
MyScene::~MyScene()
{
delete pen_bg;
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "myscene.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
MyScene *m_scene = new MyScene(this);
ui->graphicView->setScene(m_scene);
}
As soon as I call the setScene(m_scene) function, the program crashes with a SIGSEGV.
c++ qt inheritance qwidget qgraphicsscene
I'm trying to inherit from a QGraphicsScene but somehow that crashes my program when I try to use it. I guess somewhere I'm missing a small thing, but I couldn't figure it out. Here is a minimal example of what I tried so far:
myscene.h
#ifndef MYSCENE_H
#define MYSCENE_H
#include <QGraphicsScene>
class MyScene : public QGraphicsScene
{
Q_OBJECT
QPen* pen_bg;
public:
explicit MyScene(QObject* parent=nullptr);
~MyScene();
};
#endif // MYSCENE_H
myscene.cpp
#include "myscene.h"
MyScene::MyScene(QObject* parent):
QGraphicsScene (parent)
{
pen_bg = new QPen(Qt::blue);
}
MyScene::~MyScene()
{
delete pen_bg;
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "myscene.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
MyScene *m_scene = new MyScene(this);
ui->graphicView->setScene(m_scene);
}
As soon as I call the setScene(m_scene) function, the program crashes with a SIGSEGV.
c++ qt inheritance qwidget qgraphicsscene
c++ qt inheritance qwidget qgraphicsscene
asked Jan 3 at 7:49
Tom MekkenTom Mekken
735824
735824
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If you use the UI file, you need to first call setupUi() before using it, otherwise the UI elements are not initialized. See docs: http://doc.qt.io/qt-5/designer-using-a-ui-file.html
Add
ui->setupUi(this);
to your MainWindow constructor.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54018283%2fsigsegv-when-using-inherited-qgraphicsscene%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
If you use the UI file, you need to first call setupUi() before using it, otherwise the UI elements are not initialized. See docs: http://doc.qt.io/qt-5/designer-using-a-ui-file.html
Add
ui->setupUi(this);
to your MainWindow constructor.
add a comment |
If you use the UI file, you need to first call setupUi() before using it, otherwise the UI elements are not initialized. See docs: http://doc.qt.io/qt-5/designer-using-a-ui-file.html
Add
ui->setupUi(this);
to your MainWindow constructor.
add a comment |
If you use the UI file, you need to first call setupUi() before using it, otherwise the UI elements are not initialized. See docs: http://doc.qt.io/qt-5/designer-using-a-ui-file.html
Add
ui->setupUi(this);
to your MainWindow constructor.
If you use the UI file, you need to first call setupUi() before using it, otherwise the UI elements are not initialized. See docs: http://doc.qt.io/qt-5/designer-using-a-ui-file.html
Add
ui->setupUi(this);
to your MainWindow constructor.
answered Jan 3 at 8:47
llllllllllllllllllll
13.8k41742
13.8k41742
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54018283%2fsigsegv-when-using-inherited-qgraphicsscene%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown