【QT‘】 Object::connect: No such signal

 

MyThread *Rev = new MyThread();
    connect(Rev, SIGNAL(char* Data,int DataLen), this, SLOT(SerialRevDataHandle(char * Data,int DataLen)));

 

去掉参数名, 保留类型即可

MyThread *Rev = new MyThread();
    connect(Rev, SIGNAL(sendData(char* ,int )), this, SLOT(SerialRevDataHandle(char *,int)));

 

 

==========================

其他可能 —— 摘抄:

 

1、看看你的类声明中有没有Q_OBJECT
2、你声明的函数要加声明:
     private slots:
        void xxxx();
3、检查槽函数名拼写是否有误,以及对应的signal和slot的参数是否一致
如果还不行的话,清理项目,删掉原有的moc_xxx.cpp,重新执行qmake.
还有一点要注意的是:signal和slots的参数要一样




------------------------------------
在自定义信号 signal 和 槽函数 slot 是一定要严格对应好写法,举个例子:
我在某个QObject对象的头文件里面是这么定义signal和slot的


signals:
   void on_sendSignal(QString)
slots:
   void rec_getSignal(QString)


此时,我们的connect函数这么写:connect(this,SIGNAL(on_sendSignal(QString)),this,SLOT(rec_getSignal(QString)));那么这个时候就会链接成功.
但是如果我们的signal和slot是这么定义的:


signals:
   void on_sendSignal(QString str);
slots:
   void rec_getSignal(QString str);


我们之前写的那句connect函数就没有作用了,运行的时候会告诉你slot和signal都不存在.

 

 

 

 

 

 

 

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值