24

ここに私のサンプルコードがあります:

class hoho : public QObject
{
    Q_OBJECT
public:
    hoho() 
    {
        httpFetch = new HttpFetch(QUrl("http://www.google.com/"));
        connect(httpFetch, SIGNAL(Fetched()), this, SLOT(PrintData(QByteArray)));
    }

    void PrintData(QByteArray http)
    {
        qDebug()<<http;
    }

    HttpFetch *httpFetch;
};

これをコンパイルしようとすると、次のエラーがポップアップします

1>main.cpp(15): error C2243: 'type cast' : conversion from 'HttpFetch *' to 'const QObject *' exists, but is inaccessible

このエラーは、クラスが派生したときに発生しますQObject(これは、シグナルとスロットのメカニズムに必要です)。

誰でもこれを修正する方法を教えてもらえますか?

4

3 に答える 3

73

あなたはおそらくHttpFetch公的に派生したのではなく、個人的にQObject. だから変えるだけ

class HttpFetch : QObject { // ...

class HttpFetch : public QObject { // ...

そしてそれはうまくいくはずです。

于 2013-06-07T08:50:02.380 に答える
0

クラス HttpFetch の Q_OBJECT マクロを忘れましたか?

あなたのクラス HttpFetch を見ることができますか?

于 2013-06-07T08:50:33.347 に答える