Как изменить фон объекта QGraphicsScene?

Пытаюсь нарисовать сетку с помощью QGraphicsScene и QGraphicsView. Для этого решил создать свой класс M_QGraphicsScene, определил в нем метод drawBackground. Остановился на том, что не могу поменять background для QGraphicsScene

main.cpp

#include "nodewindoweditor.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    NodeWindowEditor w;
    w.show();
    return a.exec();
}

nodewindoweditor.h

#ifndef NODEWINDOW_H
#define NODEWINDOW_H

#include <QWidget>
#include <QHBoxLayout>
#include <QGraphicsView>
#include <QGraphicsScene>

#include "m_qgraphicscene.h"

class NodeWindowEditor : public QWidget
{
    Q_OBJECT

public:
    NodeWindowEditor(QWidget *parent = nullptr);
    ~NodeWindowEditor();
};
#endif // NODEWINDOW_H

m_qgraphicscene.h

#ifndef M_QGRAPHICSCENE_H
#define M_QGRAPHICSCENE_H

#include <QObject>
#include <QGraphicsScene>
#include <QPainter>
//#include <QColor>

class M_QGraphicsScene : public QGraphicsScene
{
    Q_OBJECT

public:
    M_QGraphicsScene(QObject * parent = nullptr);

protected:
    void drawBackground(QPainter *painter, const QRectF &rect) override;
};

#endif // M_QGRAPHICSCENE_H

nodewindoweditor.cpp

#include "nodewindoweditor.h"


NodeWindowEditor::NodeWindowEditor(QWidget *parent)
    : QWidget(parent)
{
    this->setGeometry(300, 100, 800, 600);
    this->setWindowTitle("Node Editor");

    QHBoxLayout* _layout = new QHBoxLayout;
    this->setLayout(_layout);

    //QGraphicsScene
    M_QGraphicsScene* scene = new M_QGraphicsScene(this);

    //view
    QGraphicsView* view = new QGraphicsView(this);
    _layout->addWidget(view);
    view->setScene(scene);

    this->show();
}

NodeWindowEditor::~NodeWindowEditor()
{

}

m_qgraphicscene.cpp

Вопрос касается этого места(см. комментарии)

#include "m_qgraphicscene.h"

M_QGraphicsScene::M_QGraphicsScene(QObject* parent):
    QGraphicsScene(parent)
{
    int width = 1000;
    int height = 1000;
    this->setSceneRect(-width / 2, -height / 2, width, height);

// Если не определять метод drawBackground, то все работает как надо и цвет фона изменяется.
// Если определить его(drawBackground) как сейчас, то фон пропадает.
// Так как правильно установить цвет фона в этом случае?

    this->setBackgroundBrush(QColor("#393939"));
}

void M_QGraphicsScene::drawBackground(QPainter *painter, const QRectF &rect)
{
    painter->drawText(0, 0, "hello world");
}


Ответы (0 шт):