Qt:如何action_triggered然后使用QMouseEvent?

Qt : how to action_triggered then use QMouseEvent?

我想做这样的事情,尽管我知道这不是它的工作原理。我不太擅长 QMouseEvent,

void MainWindow::on_addState_triggered(QMouseEvent* event)
{
    qDebug() << event->pos();

    if (event->buttons() == Qt::LeftButton)
    {
      newBoard.drawState(event->x(),event->y());
    }

}

所以我想点击我界面中的 按钮 addState(使用设计器模式制作,ui 文件)然后第二次点击我的场景使用鼠标(单击)位置调用 drawState()

我应该怎么做?

现在代码可以编译,但是 运行 我得到这个错误

QMetaObject::connectSlotsByName: No matching signal for on_addState_triggered(QMouseEvent*)

好吧,我想我能做到的方式有点难看,但它"works"。

也许有更简洁的方法来执行以下操作:

    void MainWindow::on_addState_triggered()
    {

          drawAddState=true;

    }

  void MainWindow::mousePressEvent(QMouseEvent *event)
    {
        if(drawAddState==true)
        {
            if (event->button() == Qt::LeftButton) {
                newBoard.drawState(event->localPos().x(),event->localPos().y());
                drawAddState=false;
            }
        }

    }

不幸的是,event->localPos()、pos() 甚至 GlobalPos 都与我的 GraphicsScene 无关,我无法将状态项准确放置在我单击的位置。对此有什么想法吗?

更新:我在这里回复了自己: