【QT】error: 'connect'/'sender' was not declared in this scope

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

目录
  • 1、error: 'connect' was not declared in this scope
  • 2、error: 'sender' was not declared in this scope

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  //若要使用信号槽就必须加入此宏
    ...
    ...
}

你可能感兴趣的:(【QT】error: 'connect'/'sender' was not declared in this scope)