1
我遇到問題。在QGraphicsView上繪圖時出現移位
我有一個繼承QGraphicsView的類,我們假設它叫做「g」。我重新實現mousePressEvent方法,該方法的代碼是:
void GraphWidget::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::MiddleButton)
createNode(event->pos().x(), event->pos().y());
update();
QGraphicsView::mousePressEvent(event);
}
createNode方法的代碼是:
Node *GraphWidget::createNode(qreal x, qreal y, int id)
{
Node* node = new Node(this);
scene()->addItem(node);
node->setPos(x, y);
return node;
}
我在主窗口類使用這個類的「g」作爲中心部件。所以它像QGraphicsView一樣工作。
問題是當我按下「繪圖區域」中的中間按鈕時 - 點被創建,但不是在點擊時的位置 - 點被移動。爲什麼?所以當我嘗試通過按下中間按鈕來繪製這些點時 - 所有這些點都被繪製在錯誤的地方(不是在我的光標下,它們被繪製在左側,在光標位置上方)。
我該如何解決這個問題?
是的,這解決了這個問題。謝謝,你真的很擅長Qt! – ScienceSE