单击一次后,连接到按钮的函数会被调用两次



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

connect(ui->okButton, SIGNAL(clicked()), this, SLOT(on_okButton_clicked()));
void settingswindow::on_okButton_clicked()
{
    qDebug() << "ok clicked";
    this->close();
}

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

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

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

settingswindow类中,通过手动将信号连接到插槽,可以有效地复制连接。

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

相关内容

  • 没有找到相关文章

最新更新