QObject::connect:No such slot 错误提示的两种情况及解决方法
运用qt过程中 有时会遇到编译正常通过,但是运行时有
【QObject::connect:No such slot ....... 】等提示如:
QObject::connect: No such slot QMainWindow::onbuttonClicked() in ..\untitled_connect_detail\mainwindow.cpp:19
QObject::connect: (sender name: 'btNorUnPara')
QObject::connect: (receiver name: 'MainWindow')
一、不太常见:查看继承类是否添加 Q_OBJECT
如图中
1.注释后 就会出现No such slot错误,如果用Qtcreator 一般不会出现此错误
2.如果是自己写的类 就要好好查看下 是否添加了Q_OBJECT宏定义了
文章来源:https://www.toymoban.com/news/detail-510960.html
二、常见问题:老手、新手都容易出现的
connect(ui->btNorPara, SIGNAL(clicked(bool checked)), this, SLOT(onbuttonClickeded(bool checked)));
connect(ui->btNorPara, SIGNAL(clicked(bool)), this, SLOT(onbuttonClickeded(bool)));
上面两行 仅仅是一个参数名字的区别 但是就是因为写了参数名字 导致了 No such slot的出现 所以 【有参信号、槽函数】一定要注意 仅仅写参数类型即可 不要图省事 直接复制粘贴
当然了 也可以用另一种connect方法 参数都省去 避免此错误的发生 :文章来源地址https://www.toymoban.com/news/detail-510960.html
connect(ui->btNorPara, QCheckBox::clicked, this, buttonClickeded);
到了这里,关于【Qt 中出现 No such slot 错误 解决方法】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!