Qt 槽函数怎么传递参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 槽函数怎么传递参数相关的知识,希望对你有一定的参考价值。
参考技术A[你的问题中没有说清参数的收/发方]
对于通过connect传入槽函数参数,可以借助信号(信号和槽的参数要保持一致)
对于QT自带的信号,说明文档中有列举(见下图),此类信号发出时即可附带参数
若自带的信号类型不满足要求,可自定义信号.
回答若有偏差,请及时提出
QT编程中信号与槽遇到的参数传递问题,如下
我建立一个tcpsocket的对象tcpsocket,然后关联到connect(tcpsocket,SIGNAL(readyRead()),this,SLOT(readMessage(tcpsocket))),运行的时候出现提示No such slot MainWindow::readMessage(m_tcpSocket[i])其他的都没问题,只是这里在对象参数传递的时候出问题了,求高手解答,应该怎么传
信号和槽如果要传递参数就要确保参数类型和个数的一致 你这里槽函数里面有形参 但信号里面并没有传递过来 所以就连接不到一起而且连接的时候只要写明参数的类型就可以了 你这里tcpsocket应该是对象名吧 这样就不对了 举个例子 connect(btn, SIGNAL( clicked(bool) ), this, SLOT( onClicked( bool ) )); 参考技术A QT里面的信号跟槽是对应关系 的,信号的参数就是槽的参数。。
connect(tcpsocket,SIGNAL(readyRead()),this,SLOT(readMessage(tcpsocket))),明显你这就不对,不是逗号,是;(可能你贴错)。参数也不对应,好好参考QT帮助手册。改成这样;connect(tcpsocket,SIGNAL(readyRead()),this,SLOT(readMessage()));
你那个出错很明显你这个槽很明显提示是没在头文件里面声明!
还有,在工程文件*.pro里面加入QT += network这句!
以上是关于Qt 槽函数怎么传递参数的主要内容,如果未能解决你的问题,请参考以下文章