我有一個QGraphicsScene
我已經添加了一些QGraphicsItem
的實例。單個QGraphicsScene的多個QGraphicsView
我需要在個別視圖中顯示整個場景的特定部分。
爲此,我想創建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);
嗨,有一個疑問,我有graphcsScene()裏面的多個graphicsView()。每個人從繼承QGraphicsItem的單個DrawItem類中繪製相同的東西。現在如何從MainWindow更新單個graphicsView()? – 2015-05-25 07:07:29
@XavierGeoffrey這真的是一個不同的問題。視圖的更新策略由QGraphicsView :: setViewportUpdateMode()設置,如果將更新模式設置爲none,則必須手動調用update。這可能通過信號/插槽或直接調用發生。然而,智能更新一直對我來說最合適。 http://doc.qt.io/qt-5/qgraphicsview.html#viewportUpdateMode-prop – 2015-05-26 11:07:15
嗨,謝謝你的時間。我已經在'QTimer'信號/插槽上手動調用更新。我的問題是,我在10個'QTimer'的'Mainwindow'中有10個相同的圖形項目。在信號/槽中,我只調用update(),它觸發所有10個'paintEvent()'。我想知道如何從「主窗口」控制每個圖形視圖的更新。 – 2015-05-26 13:11:31