Неправильное изменение SceneRect

179
06 мая 2018, 20:07

Есть основной класс MainWindow, для находящегося внутри QGraphicsView установлен viewPort от GraphWidget, наследуемого от QGraphicsView класса:

class GraphWidget : public QGraphicsView
{
    Q_OBJECT
public:
    GraphWidget(QWidget *parent = 0, Graph* graph = 0, MainWindow *Main = 0);
    Node *centerNode;
    void itemMoved();
    MainWindow* mw; //указатель на MainWindow
    Graph* gr;
    GraphicsScene *mscene; //указатель на кастомную QGraphicsScene
public slots:
    void SetGravity(bool grav);
    void keyPressEvent(QKeyEvent *event) override;
    void resizeEvent(QResizeEvent *event);
protected:
    void timerEvent(QTimerEvent *event) override;
    void wheelEvent(QWheelEvent *event) override;
private:
    int timerId;
    int scaleMax, scaleMin;
    QWidget* parent;
};

mscene установлена как сцена для GraphWidget. resizeEvent вызывается каждый раз когда меняется размер MainWindow и выглядит как:

void GraphWidget::resizeEvent(QResizeEvent *event)
{
    //this->mscene->setSceneRect(QRect(QPoint(0,0), event->size()));
    this->mscene->setSceneRect(0, 0, mw->width(), mw->height());
    std::cout << "Scene " << mscene->width() << " " << mscene->height() << '\n';
    mscene->addRect(mscene->sceneRect(),QPen( Qt::red, 2 ));
}

Но sceneRect всегда оказывается на несколько сотен пикселей меньше, чем размер MainWindow: sceneRect при первом запуске программы sceneRect при нажатии на фуллскрин. Если выводить на width и height в консоль, то для mscene и MainWindow они совпадают. В чём может быть проблема?

READ ALSO
Функция getche()

Функция getche()

Есть 2 примера программыв первоем примере требуется обязательно указать ch определенное значение

225
Ошибка QObject: Cannot create children for a parent that is in a different thread.

Ошибка QObject: Cannot create children for a parent that is in a different thread.

Вот такой вот несложный код бегаю по QMap вытаскиваю сайт и его загружаюНесколько раз получаю это

205
Как сравнивать два массива с обьектами в jest

Как сравнивать два массива с обьектами в jest

У меня есть 2 обьекта внутри у них есть свойство options это массив и внутри элементов массива есть обьекты со свойством variants который тоже является...

171