我有一个由QFutureWatcher触发的插槽。我正在尝试强制发送者以获取结果

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内置类型,所以我在做什么错呢?

最佳答案

您必须将Q_OBJECT放在类定义中,如下所示:

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

关于c++ - qobject_cast没有Q_OBJECT宏错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47969064/

10-09 06:33