信号槽绑定时出现未有匹配的connect()函数

信号槽在使用的过程中,出现没有找到匹配的connect()函数,在检查参数无误后,可能出现的原因便是,信号的重载,为此需要指定绑定的是那种参数的信号。

例如在spinbox的使用时,对于信号valueChanged()有两个重载函数,绑定时没有指出绑定的是哪一个信号,就会出现找不到匹配的connect()函数。解决方法有两种:

  1. 采用SIGNAL()和SLOT()宏来绑定信号槽,这样可以指出具体的函数,因为含有形参类型;
  2. 采用函数指针指向具体函数,进而connect()绑定。下面用一个例子来说明:
    QTcpSocket继承自QAbstractSocket,而QAbstractSocket类中含有两个error()函数,分别如下:
    SocketError error() const;
    void error(QAbstractSocket::SocketError);
    当在编写如下程序时出现编译错误,因为编译器无法识别到底是绑定的哪一个error。
connect(tcpClient,&QTcpSocket::error,this,&myClient::displayError);

上面的程序无法通过编译,为了解决问题,可以采取如下方法:
1.利用函数指针,指明具体使用的是哪一种形参的函数。

void (QTcpSocket:: *tcpSocketsign)(QAbstractSocket::SocketError) = &QTcpSocket::error;
connect(tcpClient,tcpSocketsign,this,&myClient::displayError);

2.使用宏SIGNAL()和SLOT()

connect(tcpClient,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(displayError(QAbstractSocket::SocketError)));

3.使用函数指针,但是实在static_cast的基础上。(备注:这种写法有待验证,看着同事这么写,应该是可以)

connect(tcpClient,static_cast<void (QTcpSocket::*)(QAbstractSocket::SocketError)>(&QTcpSocket::error),this,&myClient::displayError);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松了解面试官心理!ElasticSearch写入数据的工作原理是什么? | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;手留余香转自&#xff1a; Java架构沉思录面试题es 写入数据的工作原理是什么啊&#xff1f;es 查询数据的工作原理是什么啊&#xff1f;底层的 lucene 介绍一下呗&#xff1f;倒排索引了解吗&#xff1f;面试官心理…

OpenGL 伽马线

目录 一.OpenGL 伽马线 1.IOS Object-C 版本2.Windows OpenGL ES 版本3.Windows OpenGL 版本 二.OpenGL 伽马线 GLSL Shader三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 &…

GitHub 创建项目

需求&#xff1a;在github上创建一个新的远程仓库&#xff1a;

Qt界面设计器中的界面预览与程序运行时界面不一样

用QtCreate创建的界面应用程序&#xff0c;在ui文件中拖入所需的控件&#xff0c;并进行布局&#xff0c;布局完成后在ui文件的工具->form Editor->预览可查看当前界面。问题便是:通过预览查看界面布局没有问题&#xff0c;但运行程序时界面与预览的界面存在偏差。 我做…

找了前锤子CTO钱晨加入SLG ,百度终于认了……新的一年第4批CDN牌照公布;亚马逊开设云计算技术培训工作 | 极客头条...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 百度宣布正式进军社交领域并…

Windows OpenGL ES 图像伽马线

目录 一.OpenGL ES 图像伽马线 1.原始图片2.效果演示 二.OpenGL ES 图像伽马线源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 Open…

idea将本地项目推送至远程仓库(图形化版本01)

需求&#xff1a;演示把项目推送到github远程仓库&#xff1a; 需求思路分析&#xff1a;1.拉取或更新&#xff08;Update Project&#xff09;项目2.将本地项目添加至暂存区3.将暂存区的项目提交到本地仓库4.将本地仓库中的代码推送至(Push)远程GitHub仓库5.登录查看&#xff…

Qt中QSS的简单使用

样式表的组成 样式表由两大元素组成&#xff1a;选择器和声明。选择器实际上可以理解为对象&#xff0c;声明则是对该对象的属性的设置。 样式表的使用 方法一&#xff1a;在代码中调用setStyleSheet()来设置样式&#xff1b; 方法二&#xff1a;通过加载qss文件来设置样式。…

5G精华问答:5G的速度到底有多快?| 技术头条

近几年5G大火&#xff0c;尤其是2019年更是达到了高潮&#xff0c;关于5G的各种问题也随之而来&#xff0c;它究竟有多快&#xff0c;会不会取代WiFi和4G&#xff0c;今天就为大家来解答各种关于5G的问题吧。1Q&#xff1a;5G会取代Wi-Fi么&#xff1f;A&#xff1a;5G是第五代…

第一篇:Spring Boot 快速入门篇

小技巧&#xff1a; Spring Boot 集成周边技术3部曲 1.pom文件引入maven依赖 2.配置文件中配置相关信息 3.启动类上加注解 一、Spring Boot 构建项目有2种方式&#xff1a; Maven 构建项目 1、访问 http://start.spring.io/2、选择构建工具 Maven Project、Java、Spring Boot…

Windows OpenGL 图像伽马线

目录 一.OpenGL 图像伽马线 1.原始图片2.效果演示 二.OpenGL 图像伽马线源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES …

Qt使用socket通信时接收的汉字信息显示时乱码

显示乱码的原因是因为编码格式不一致。 下面附上一个曾经的例子。 QString str ui->textEdit->toPlainText();QByteArray text str.toUtf8();//返回一个字符串的utf-8形式&#xff0c;可以表示所有字符 // QByteArray text str.toLatin1();//只能输出英文和数字&a…

OpenStack已死?恐怕你想多了 | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;译者&#xff1a;Lorraine Lo在接受不同采访时我经常会被问到这么一个问题&#xff1a…

Windows 环境 Jenkins集成构建SonarQube

关于Windows搭建SonarQube_Mysql的相关操作先点击下面的链接&#xff0c;进行跳转。 操作手册&#xff1a; Windows搭建SonarQube_Mysql 启动Jenkins有2种方式&#xff1a; 第1种&#xff1a;java -jar jenkins.war :原理是用自身的netty启动第2种&#xff1a;把jenkins.war…

tcp的简单使用实例一

话不多说&#xff0c;直接上自己写的一个tcp小程序&#xff0c;分为客户端和服务端两个程序&#xff0c;实现了单一方向的数据传输。下面来看具体的代码&#xff1a; 先看客户端的程序。创建基于Qt Widgets Application 的应用程序&#xff0c;选择基类QDialog,修改类名为myCli…

java 中以||作为split分隔符正确的写法

java 中以||作为split分隔符正确的写法 今天项目中需要在后台处理前台传递过来的拼接字符串&#xff0c;一开始写成str.split("\||")&#xff0c;得不到正确的结果&#xff0c;通过百度查找发现 java 中以||作为split分隔符正确的写法需要将||进行转义&#xff0c;否…

英特尔强势上新一大波数据产品,小伙伴们“奔走相告”…… | 极客头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;刘晶晶近日&#xff0c;英特尔推出了一款创新产品组合&#xff0c;点…

Qt中Tcp通信的简单使用二

tcp编程中写的一个简单的单项传输数据的小例子&#xff0c;和上一节一样&#xff0c;分为客户端和服务端程序&#xff0c;下面看一下界面的效果。 创建的方法和之前一样&#xff0c;上面上代码&#xff1a; 客户端 Client.h #ifndef CLIENT_H #define CLIENT_H#include <…

atom插件安装方法

Search Atom packages 安装插件前提&#xff1a; 1、安装git 和node.js2、node官网&#xff1a;https://nodejs.org/en/3、下载稳定版 4、安装node.js 详细安装步骤&#xff1a; http://www.runoob.com/nodejs/nodejs-install-setup.html 5、插件搜索官网&#xff1a; https…

Docker精华问答:Docker与虚拟机的区别?| 技术头条

Docker 是个划时代的开源项目&#xff0c;它彻底释放了计算虚拟化的威力&#xff0c;极大提高了应用的维护效率&#xff0c;降低了云计算应用开发的成本&#xff01;使用 Docker&#xff0c;可以让应用的部署、测试和分发都变得前所未有的高效和轻松&#xff01;1Q&#xff1a;…