У меня есть класс View
что включает в себя мой QGraphicsView
но у меня возникают проблемы с наследованием от него. Мой код выглядит следующим образом:
class View: public QGraphicsView {//inherits qwidget -- so we can make it full screen there
Q_OBJECT
public:
View(QGraphicsScene * _scene);//this is responsible for setting up the screen and instantiating several elements
~View();
protected:
virtual void paintEvent(QPaintEvent * event) = 0;
А также Game
наследуется от View
:
#include "view.h" //this includes all of the functionality of the different elements
using namespace std;
class Game : public View {//inherit everything above and down into private functions
public:
Game(QGraphicsScene * _scene);
~Game();
protected:
void paintEvent(QPaintEvent * event);
};
Я реализовал paintEvent
просто быстро cout
в game
, Когда я компилирую, все компилируется нормально, но когда я запускаю, я получаю сообщение о том, что была вызвана чисто виртуальная функция:
libc++abi.dylib: pure virtual method called
Abort trap: 6
мой View
Конструктор выглядит так:
View::View(QGraphicsScene * _scene) : QGraphicsView(_scene) {...
Любая помощь будет принята с благодарностью.
Я получил paintEvent
функция для компиляции и открытия моего приложения. Но по какой-то причине, когда я пытаюсь нарисовать на сцене, это не работает.
Однако, если я достану paintEvent
функция работает нормально. Любые предложения относительно того, почему paintEvent
ломает это?
в моем основном файле:
QGraphicsEllipseItem * item = new QGraphicsEllipseItem(0, scene);
item->setRect(50.0, 50.0, 100.0, 100.0);
view->setRenderHints(QPainter::Antialiasing);
view->show();
Это работает, если я избавлюсь от виртуального paintEvent
функция, но в том числе это сломает круг от рисования?
Других решений пока нет …