Вы не получаете события, потому что они обрабатываются создаваемым объектом scene
, а не вашим классом.
Удалите QGraphicsScene *scene;
из вашего rasImg
и попробуйтевот так для конструктора:
rasImg::rasImg(QString file)
: QGraphicsScene(QRect(0, 0, MaxRow, MaxCol))
{
addText("HELLO");
setBackgroundBrush(QColor(100,100,100));
setDragMode(QGraphicsView::ScrollHandDrag);
view = new QGraphicsView();
view->setScene(this);
}
Если вы хотите сделать это в два шага, вы можете сделать:вашего rasImg
, а не экземпляра QGraphicsScene
.
Если это представление, которое вы подклассифицируете, сделайте то же самое.Отображаемое вами представление должно быть экземпляром вашего класса, а не простым QGraphicsView
.
rasImg::rasImg(QString file)
: QGraphicsView()
{
// constructor work
}
void rasImg::initialize()
{
scene = new QGraphicsScene(QRect(0, 0, MaxRow, MaxCol));
scene->addText("HELLO");
scene->setBackgroundBrush(QColor(100,100,100));
setDragMode(QGraphicsView::ScrollHandDrag);
setScene(scene);
}