私は問題があります。
私は 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 のように動作します。
問題は、「描画領域」の中央ボタンを押すと、ポイントが作成されますが、クリックした場所にはありません。ポイントがシフトします。なんで?そのため、中央ボタンを押してこれらのポイントを描画しようとすると、すべてが間違った場所に描画されます(カーソルの下ではなく、左左とカーソル位置の上に描画されます)。
どうすれば修正できますか?