【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