Qt使用connect时出现:error: no matching function for call to..怎么解决 ^

img

有错误的地方:
connect(ui->actionQuit,&QAction::triggered,{
this->close();
});
要怎么修改呢

该回答引用GPTᴼᴾᴱᴺᴬᴵ
您在使用connect时出现了语法错误,需要将代码修改为如下形式:

connect(ui->actionQuit, &QAction::triggered, this, &QWidget::close);


其中,&QWidget::close指定了QAction被触发时,调用当前窗口的close()函数。请确保QAction对象已经被正确创建,并将其添加到菜单或工具栏中。

connect这个函数的参数不对,检查下。

参考GPT和自己的思路,改成以下代码就可以了:

connect(ui->actionQuit, &QAction::triggered, this, &MainScene::close);

回答不易,还请采纳!!!

参考GPT和自己的思路:

根据给出的错误信息,"error: no matching function for call to 'MainWindow::connect(QAction*&, )'",似乎是由于使用了不正确的connect函数语法导致的。正确的connect函数语法应该是这样的:

connect(sender, signal, receiver, method)

在这里,sender是信号的发送者,signal是具体的信号,receiver是信号的接收者,method是接收者中的一个具体的槽函数。所以你的connect语句应该像这样修改:

connect(ui->actionQuit, &QAction::triggered, this, &MainWindow::close);

这样,当ui->actionQuit信号被触发时,程序将调用MainWindow类中的close()槽函数来关闭窗口。