При создании моего приложения графического рисунка я использую QgraphicsScene и QGraphicsView вместе, чтобы иметь возможность рисовать как бесплатные формы, так и готовые объекты (переопределение QGraphicSitem ). В настоящее время я создаю панель инструментов и хочу разместить ее в QGraphicsView , чтобы она была смещена на 20 пикселей, начиная с верхнего левого угла (примерно как в Blender). Но вот проблема! Поскольку при добавлении панели инструментов в качестве дочернего элемента в виджет QgraphicsView , когда элементы добавляются на сцену, окно -свитки и т. Д., Виджет панели инструментов перерисовывается, что увеличивает стоимость перерыва. Как это может быть оптимизировано, чтобы эффект был таким же, как при работе в блендере? Я также создал отдельную панель инструментов и переместил ее в угол QgraphicsView всякий раз, когда виджет был перемещен, но он не помог.
Код: Выделить всё
QGraphicsView* const view = new QGraphicsView(this);
QGraphicsScene* const scene = new QGraphicsScene;
scene->setSceneRect(QRect(-1000, -1000, 2000, 2000));
view->setScene(scene);
MyToolBar* const myToolBar = new MyToolBar(view);
view->move(20, 20);
Я также устанавливаю различные флаги оптимизации, но это тоже не помогло.
Подробнее здесь:
https://stackoverflow.com/questions/795 ... er-in-qt-c