我有个问题。
我有一个继承 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 一样工作。
问题是当我按下“绘图区域”上的中间按钮时 - 点被创建但不在我点击时的位置 - 点被移动。为什么?因此,当我尝试通过按下中间按钮来绘制这些点时 - 所有这些点都被绘制在错误的位置(不是在我的光标下方,它们被绘制在我的光标位置的左侧和上方)。
我该如何解决?