Qt QGraphicsView Event

У меня есть класс 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) {...

Любая помощь будет принята с благодарностью.

0

Решение

Я получил 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 функция, но в том числе это сломает круг от рисования?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]