Connect was not declared in this scope

QT程序中的事件機制是通過SIGNAL-SLOT(信號-槽)來實現的,創建一個信號與槽的連接就是使用connect方法,它是QObject類下面的一個靜態方法,基本上,所有的QT對象的基類都是QObject,所以,在非QObject的派生類下面使用connect方法需要指定QObject類,即使用QObject::connect();或者,繼承QObject。

 

解決'connect' was not declared in this scope 這種錯誤一般有下面兩個方法:

使用QObject::connect

方法一:因爲connect是QObject類下面的靜態方法,所以引用方式應該爲QObject::connect();

?

1

2

3

4

5

6

7

8

9

10

class A{

public:

    A();

    ~A();

 

public:

    void test(){

        QObject::connect(...);// 引用QObject

    }

}

繼承QObject

方法二:繼承QObject,繼承QObject後,自己也就有了connect方法,就可以直接使用了。

1

2

3

4

5

6

7

8

9

10

class A : QObject{

public:

    A();

    ~A();

 

public:

    void test(){

        connect(...);// 因爲已經繼承QObject類,所以有connect方法。

    }



轉載自 <http://blog.sbw.so/Article/index/title/QT:connect%20was%20not%20declared%20in%20this%20scope%20%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章