【Qt 中出现 No such slot 错误 解决方法】

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宏定义了
注释后 就会出现No such slot错误,如果用Qtcreator 一般不会出现此错误

二、常见问题:老手、新手都容易出现的

 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方法 参数都省去 避免此错误的发生 :

   connect(ui->btNorPara, QCheckBox::clicked, this, buttonClickeded);
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值