我無法弄清楚如何使centerOn()圍繞項目視移動(或圍繞港口的項目,不知道這是哪條路)。QGraphicsView-> centerOn()不工作
下面的代碼做的主要工作有:
view.setDragMode(QGraphicsView::ScrollHandDrag);
view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view.setFrameStyle(QFrame::NoFrame);
view.showFullScreen();
QGraphicsPixmapItem *pmItem = new QGraphicsPixmapItem(pixMap);
scene.addItem(pmItem);
view.centerOn(QPointF(50,30));
view.show();
rc = qA.exec();
然而,centerOn()不超載的QGraphicsView的,當我試圖從的paintEvent(這樣做)什麼:
class MyView :: public QGraphicsView { ... }
void MyView::init(){
...
setDragMode(QGraphicsView::ScrollHandDrag);
setFrameStyle(QFrame::NoFrame);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
_scene.clear();
setScene(&_scene);
super::showNormal();
}
void MyView::paintEvent(QPaintEvent *aEvent){
_scene.clear();
QGraphicsPixmapItem *pmItem = new QGraphicsPixmapItem(pixMap);
_scene.addItem(pmItem);
centerOn(QPointF(50.0, 30.0));
super::paintEvent(aEvent);
}
我錯過了什麼? 謝謝
亞歷
嘗試重新實現功能drawForeground代替的paintEvent。這是通常的方式,你可以在視圖中弄亂事物。我猜測在paintEvent運行時沒有繪製視圖,並且因爲座標30.0和50.0不是有效的視圖 – Castilho
對不起,以前沒有響應。我今晚會檢查一下,讓你知道。謝謝。 – Alex