我特林在非基于QT类使用Q_ENUMS
:非Qt类使用Q_ENUMS
#include <QMetaType>
#include <QObject>
class SignalSpec: public QObject
{
Q_ENUMS(Modulations)
public:
enum Modulations { PSK , QAM , FSK, PAM };
SignalSpec();
private:
Q_DISABLE_COPY(SignalSpec)
};
Q_DECLARE_METATYPE(SignalSpec::Modulations);
但我发现了这个错误在编译行Q_DISABLE_COPY(SignalSpec)
:
问题是什么?
如何在基于非QT的课程中使用Q_ENUMS
?
编辑:
我只是从创建一个对象:
SignalSpec *s=new SignalSpec();
s->setModulation(ui->modulationCombo->currentData().value<SignalSpec::Modulations>());
我也有这个类的一个QVector:
QHash<QString,QVector<SignalSpec> > signalConfig;
你必须有更多的代码,你没有显示。该错误在调用复制构造函数时触发。它与枚举无关。 – Pemdas
@Pemdas:是的,我知道错误不是枚举,我只是继承QObject才能够使用'Q_ENUMS';错误是在这个文件和那一行(即使我没有从那个类创建一个对象,但我仍然有错误!),但是我添加了我也在使用的部分;谢谢 – RYN
我想知道是否添加Q_OBJECT宏使这项工作。 – Pemdas