Ben olmayan bir QT tabanlı sınıfta Q_ENUMS
kullanmaya tring ediyorum:kullanma 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);
Ama hat Q_DISABLE_COPY(SignalSpec)
için derleme bu hatayı alıyorum:
error: 'SignalSpec::SignalSpec(const SignalSpec&)' is private
Q_DISABLE_COPY(SignalSpec)
^
Sorun nedir?
Q_ENUMS
'u QT tabanlı olmayan bir sınıfta nasıl kullanabilirim?
Düzenleme:
QHash<QString,QVector<SignalSpec> > signalConfig;
için Sen göstermedi fazla kodu olması gerekir. Bu hata, bir kopya kurucusu çağrıldığında tetiklenir. Enumlarla ilgisi yok. – Pemdas
@Pemdas: Evet, hata enumlar için değil, QObject 'i sadece Q_ENUMS kullanabilmek için miras aldığını biliyorum; Hata bu dosyada ve bu satırda (o sınıftan bir Nesne oluşturmama rağmen hala hatam var!) Ama bunu da kullandığım bölümü ekledim; teşekkürler – RYN
Q_OBJECT makrosunun eklenmesi bu işe yarar mı acaba? – Pemdas