2017-12-25 20 views
0

私はQFutureWatcherによってトリガーされるスロットを持っています。私は結果 qobject_castいいえQ_OBJECTマクロエラー

QFutureWatcher<QPair<QImage,QString>>* QFW = qobject_cast<QFutureWatcher<QPair<QImage,QString>>*>(sender()); 

を取得するが、私はこれらは、ここで間違っているものを本当にわからないんだけど

error: static assertion failed: qobject_cast requires the type to have a Q_OBJECT macro 

得続けるために、送信者をキャストしようとしているすべてのQtの組み込み型なので、何を私は間違っている?

+0

私はあなたが 'の#include 'ので、コンパイラはQFutureWatcherはQObjectを継承する知らない欠けていると思います。 – drescherjm

+0

私はそれについても考えましたが、ヘッダを含めては助けになりませんでした。 – JLev

+0

代わりにdynamic_cast <>が機能しますか? – drescherjm

答えて

0

あなたはこのように、クラス定義でQ_OBJECTを配置する必要があります:

class MyClass : public QObject 
{ 
    Q_OBJECT 
// ^^^^^^^^^^ 
public: 
    MyClass(); 
/*...*/ 
} 
+0

私はそれを使用しているクラスは、このマクロをすでに持っていました。私はそれがQFutureWatcher >について不平を言っていると思う – JLev

関連する問題