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 槽函数怎么传递参数的主要内容,如果未能解决你的问题,请参考以下文章

QT编程中信号与槽遇到的参数传递问题,如下

Qt信号槽如何附带自定义参数

关于Qt信号与槽机制的传递方向性研究(结论其实是错误的,但是可以看看分析过程)

qt 两个界面 参数传递

qt 两个界面 参数传递

qt修正参数怎么调用自定义函数