我特林在非基於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