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


免责声明!

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



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM