У меня есть один QGraphicsScene
, к которому я добавил несколько экземпляров QGraphicsItem
.Несколько QGraphicsView для одного QGraphicsScene
Мне нужно отобразить конкретный раздел всей моей сцены в отдельных видах.
Для этого я хочу создать несколько экземпляров QGraphicsView
, каждый из которых отображает конкретный раздел моего QGraphicsScene
(не аналогичная часть).
Как это сделать?
QGraphicsScene mcpGraphicsScene = new QGraphicsScene(this);
QGraphicsRectItem * mcpGraphicsRect = mcpGraphicsScene->addRect(5,5,200,200);
QGraphicsLineItem * mcpGraphicsLine = mcpGraphicsScene->addLine(500,500,300,300);
QGraphicsView * mcpGraphicsView1 = new QGraphicsView(this);
mcpGraphicsView1->setScene(mcpGraphicsScene);
mcpGraphicsView1->setGeometry(260,20,311,500);
QGraphicsView * mcpGraphicsView2 = new QGraphicsView(this);
mcpGraphicsView2->setScene(mcpGraphicsScene);
mcpGraphicsView2->setGeometry(260,520,311,1061);
Привет, у меня есть сомнения, у меня есть несколько graphicsView() внутри graphcsScene(). Каждый из них рисует одну и ту же вещь из одного класса DrawItem, который наследует QGraphicsItem. Теперь, как обновить отдельную графику() от MainWindow? –
@ XavierGeoffrey, это действительно разные вопросы. Политика обновления представления устанавливается с помощью QGraphicsView :: setViewportUpdateMode(), если вы настроили режим обновления равным нулю, тогда вам нужно вручную вызвать обновление. Это может произойти через сигнал/слот или прямой вызов. Однако Smart-обновление всегда срабатывало лучше всего для меня. http://doc.qt.io/qt-5/qgraphicsview.html#viewportUpdateMode-prop –
Привет, спасибо за ваше время. Я уже вручную вызываю обновление в сигнале/слоте QTimer. Моя проблема: у меня есть 10 одинаковых графических элементов в 'Mainwindow' с 10' QTimer'. В сигнале/слоте я вызываю только update(), который запускает все 10 'paintEvent()'. Я хотел бы знать, как управлять обновлением каждого графика с помощью «Mainwindow». –