Qt 连接到按钮的函数在单击一次后调用两次

Qt 连接到按钮的函数在单击一次后调用两次,qt,qt5,qt-signals,Qt,Qt5,Qt Signals,我的插槽和信号有问题。我创建了按钮并将它们连接到单击的()插槽。然后我决定手动连接信号和插槽,从那时起,当我点击按钮时,它会调用其功能两次 connect(ui->okButton, SIGNAL(clicked()), this, SLOT(on_okButton_clicked())); void settingswindow::on_okButton_clicked() { qDebug() << "ok clicked"; this->close

我的插槽和信号有问题。我创建了按钮并将它们连接到单击的()插槽。然后我决定手动连接信号和插槽,从那时起,当我点击按钮时,它会调用其功能两次

connect(ui->okButton, SIGNAL(clicked()), this, SLOT(on_okButton_clicked()));

void settingswindow::on_okButton_clicked()
{
    qDebug() << "ok clicked";
    this->close();
}
connect(用户界面->确认按钮,信号(点击()),这个,插槽(在确认按钮上点击());
void settingswindow::在单击按钮时()
{
qDebug()关闭();
}

我在谷歌上寻找答案,但我只找到了这个:但我的*.ui文件看起来像这样:。正如你所看到的,只有一行,没有更多。我找不到有关信号和插槽的信息保存在哪里。重建和清理选项没有帮助

这不是
Qt
中的错误。如果查看为
ui.*.h
文件生成的代码,您会注意到在
setupUi()
函数中执行的最后一条语句是对
QMetaObject::connectSlotsByName()
的调用

由于插槽已符合此函数所寻找的命名约定,因此插槽将自动连接到信号

通过在
设置swindow
类中手动将信号连接到插槽,可以有效地复制连接


正如@Devopia提到的,这是一个有文档记录的功能。

看起来像是Qt的一个bug。尝试删除此按钮并再次添加(可能更改其名称)我不知道该说什么。。。我已经为这个问题挣扎了2个小时,但我没有尝试最简单的解决方案。删除按钮并使用相同的名称再次添加。。谢谢你,伙计!这不是一个bug。看,看这个。。。好吧,这解释了很多,因为我是在objectName signalName模式上使用它的。谢谢