在所有代码和槽函数全部写好之后,进行编译时竟然报 No such slot xxxx,奇怪

Starting E:\01_project\03_C++\key\debug\key.exe...

Object::connect: No such slot MainWindow::GenerateKey() in mainwindow.cpp:26

Object::connect: (sender name: 'btn_ok')

Object::connect: (receiver name: 'MainWindow')

Object::connect: No such slot MainWindow::ShowAbout() in mainwindow.cpp:28

Object::connect: (sender name: 'actionAbout')

Object::connect: (receiver name: 'MainWindow')

于是将该connect连接信号和槽函数中的槽函数换成qt自带的 close()函数,编译成功进行操作对应的按钮能正常触发关闭,说明connect()函数没问题,问题是出在槽函数这块

    connect(ui->btn_ok,SIGNAL(clicked()),this,SLOT(GenerateKey()));
connect(ui->actionExit,SIGNAL(triggered()),this,SLOT(close()));
connect(ui->actionAbout,SIGNAL(triggered()),this,SLOT(ShowAbout()));

  

出现这个问题一般从下面几个思路进行定位分析:

1、信号和槽函数的类型是否一致,clicked()为void类型,自己写的GenerateKey()也为void类型

2、信号和槽函数的参数类型是否一致,如果clicked(true)带有参数,那么槽函数也必须要带上参数,必须同为bool类型

3、信号和槽函数的名字是否有拼错

4、槽函数是否有提前进行声明,如果没有声明为slots类型的话,connect()也会被认为找不到槽函数

注:我上面遇到的问题就是未在头文件中声明 slots,所以就报错了,添加了这个声明之后,运行就正常了。

slots声明如下:

public slots:
void GenerateKey();
void ShowAbout();

  

最新文章

  1. 【BZOJ-4653】区间 线段树 + 排序 + 离散化
  2. ubuntu初始化root帐号密码
  3. Jetson TK1刷机+配置Mini PCI-e无线网卡
  4. windows关机命令
  5. linux截取指定字符shell cut awk
  6. jquery之hide()用法详解
  7. mysql+mybatis 插入可递增字段库表操作
  8. BSD历史
  9. 函数flst_add_last
  10. 输入参数能动态调决定调用哪个实现类 spring的一个特性
  11. org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别
  12. IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 因为 Web server上此资源的訪问控制列表(ACL)配置或加密设置,您无权查看此文件夹或页面。)
  13. 1#Two Sum(qsort用法)
  14. bootstrap日期控件(双日期、清空等问题解决)
  15. 平衡树splay学习笔记#2
  16. 乾坤合一~Linux设备驱动之终端设备驱动
  17. BBS--后台管理页面,编辑文章,xss攻击
  18. GitKraken 团队项目使用教程
  19. bisecting k-means
  20. 博弈论之SG函数

热门文章

  1. BIOS安全设置
  2. vue-cli3配置webpack generate-asset-plugin
  3. LeetCode529. 扫雷游戏 Python3 DFS+BFS+注释
  4. [转]JVM参数使用手册
  5. 分布式事务之解决方案(XA和2PC)
  6. HTTP认知(请求与响应)
  7. linux-发送文件夹rsync -avz salt-发送文件/文件夹
  8. SpringCloud路由网关Zuul
  9. Comet OJ - Contest #11 B题 usiness
  10. 【HNOI 2019】JOJO