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