QTerror: 'connect'/'sender' was not declared in this scope

Posted lcgbk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QTerror: 'connect'/'sender' was not declared in this scope相关的知识,希望对你有一定的参考价值。

引言:运行qt程序涉及到信号槽出现的错误。

1、error: ‘connect‘ was not declared in this scope

原因: 有可能是类中使用了信号槽,却未引入信号与槽的基类QObject

解决方法一: 将connect换成QObject::connect(注意:要在类中加入Q_OBJECT宏,使用信号与槽必须要加入Q_OBJECT宏。因为connect是静态成员,所以可以该方式解决)。

解决方法二: 类继承QObject

class MyTabWidget:public QObject
{
?? ?Q_OBJECT  //若要使用信号槽就必须加入此宏
?? ?...
    ...
}

2、error: ‘sender‘ was not declared in this scope

原因: 以上面一样。
解决方法: 因为sender是QObject类的保护成员,所以不能使用QObject::sender方法解决,要使用继承的方式解决。

class MyTabWidget:public QObject
{
?? ?Q_OBJECT  //若要使用信号槽就必须加入此宏
?? ?...
    ...
}


以上是关于QTerror: 'connect'/'sender' was not declared in this scope的主要内容,如果未能解决你的问题,请参考以下文章

pymysql报AttributeError: module 'pymysql' has no attribute 'connect'

[Z3001] connection to database 'zabbix' failed: [2003] Can't connect to MySQL server on

Could not connect to '172.18.253.2' (port 22): Connection failed.

2003 - Can't connect to MySQL server on '127.0.0.1' (61 "Connection refused")

由于目标机器积极拒绝,无法连接。 (10061), on API \'connect\' 这个是什么意

Xshell 链接 Could not connect to '192.168.80.129' (port 22): Connection failed