在所有代码和槽函数全部写好之后,进行编译时竟然报 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();

  

Object::connect: No such slot xxx 解决方法的更多相关文章

  1. Object::connect: No such slot QWidget::

    出现如下错误 Object::connect: No such slot QWidget::readMyCom() in ../untitled/ConversionScreen.cpp:49 解决办 ...

  2. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

    rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一 ...

  3. sudo: unable to resolve host XXX 解决方法

    执行sudo命令时候,总是提示sudo: unable to resolve host xxx 解决方法: 法1. 在/etc/hosts/添加hosts映射, 如127.0.0.1 xxx 法2. ...

  4. hp警告Creating default object from empty value 问题的解决方法

    hp警告Creating default object from empty value 问题的解决方法 解决方法是找到报错的位置然后看哪个变量是没有初始化而直接使用的,将这个变量先实例化一个空类.如 ...

  5. SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法

    原文摘自:http://www.jb51.net/article/52581.htm 这篇文章主要介绍了SELinux导致PHP连接MySQL异常Can't connect to MySQL serv ...

  6. cannot open git-upload-pack,cannot open git-receive-pack,Can't connect to any URI错误解决方法eclipse

    cannot open git-upload-pack,cannot open git-receive-pack,Can't connect to any URI错误解决方法eclipse 解决ecl ...

  7. Unable to connect to your virtual device!解决方法

    使用Genymotion安卓模拟器的用户,很多朋友在启动安卓系统的时候就弹出了以下英文,不知道如何处理,今天电脑知识网小编来教您处理Genymotion安卓模拟器启动出错的问题. Error Unab ...

  8. python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法

    在ide中执行python程序,都已经在默认的项目路径中,所以直接执行是没有问题的.但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError ...

  9. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法-转

    原文:http://raksmart.idcspy.com/781 在CentOS上的Canon LBP2900安装打印机驱动,中间遇到了一些问题,主要是安装rpm包出现的依赖问题,现在解决了,现在简 ...

随机推荐

  1. B. Magic Stick

    题目:魔法棒 题意:可以对一个正数进行变换,如果数字是偶数,那么它可以变成3 * a / 2 如果这个数大于1,那么它可以变成a - 1 有两个数x和y,询问是否可以通过这些操作从x变成y,输出YES ...

  2. Docker系列-(2) 镜像制作与发布

    上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ...

  3. DWVA-关于SQL注入的漏洞详解

    low等级 代码如下: <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; // ...

  4. 查看yum已安装的包

    在linux下如何使用yum查看安装了哪些软件包 列出所有已安装的软件包 yum list installed yum针对软件包操作常用命令: 1.使用 yum 查找软件包 命令:yum search ...

  5. Springboot静态页面放在static路径下还是访问不到

    一种最常见的问题,静态资源放在默认的目录,如:resources/static或resources/templates 访问静态资源的时候,路径不应带上默认目录,因为springboot默认从这些目录 ...

  6. php5.4.16执行shell脚本

    因为要用到Python脚本,所以打算直接在PHP中直接调用系统命令system(). 要注意两点: 一.PHP5.3以上不存在安全模式,即要直接执行脚本不需要作任何其他配置. 二.system函数格式 ...

  7. 获取浏览器视口高度device-width

    在进行移动设备web开发时,我们总会用到这样一条代码“<meta name='viewport' content='width=device-width,initial-scale=1.0' / ...

  8. 简单使用一下IDEA 的HTTP Client

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 相信大家都用过POSTMAN吧,后端在开发的时候 ...

  9. GHOST CMS - 创建自定义主页 Creating a custom home page

    创建自定义主页 Creating a custom home page 为你的网站创建一个自定义的主页是一个让你从人群中脱颖而出的好方法,并把你自己独特的印记存放在你的网上.本教程向您展示了如何在Gh ...

  10. Fuchsia文章汇总

    今日,windows时代的十年已经过去,android/ios时代的十年也行将结束,下一个十年是谁的十年? 操作系统做为软件的基石,做为基础服务的基础,因为各层应用框架的层层封装,正在变的越来越透明, ...