Qt学习笔记——Qt5中发射带有 const u_char* 数据类型信号出错的问题


   最近用Qt5开发一个项目时候出现了一个信号和槽的问题,线程中信号大概如下:

signals:
   void SignalIPv6(bool,QString,QString,const u_char*);

   连接主界面上槽函数如下:

   connect(myCaptureThread,SIGNAL(SignalIPv6(bool,QString,QString,const u_char *)),
            this,SLOT(PraseIPv6Header(bool,QString,QString,const u_char*)));

   这在Qt4中没有问题,但在Qt5中编译就出现问题,出现如下错误:

   Object::connect: No such signal的错误

   在网上查了许多资料后,发现原来除了返回值,Qt 4 connect()函数与 Qt 5 最大的区别在于,Qt 4  signal  slot 只有const char *这么一种形式。

   后来修改信号形式为:

   void SignalIPv6(bool,QString,QString,const char*);

   就没有问题了,因为项目要用到Libpcap,所以循环捕包函数为:

   void SignalIPv6(bool,QString,QString,const u_char*);

   最后强制转换一下const u_char为 const char* 就行了.

   参考网址:http://my.oschina.net/cgshare/blog/193081?p={{totalPage}}

Object::connect: No such signal的错误


Object::connect: No such signal的错误


Object::connect: No such signal的错误




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com