我如何使用QList <customclass>作为QT元对象</customclass>

时间:2014-11-27 04:05:57

标签: c++ json qt sourceforge qjson

您好我正在尝试将对象转换为JSON。在那个过程中,我创建了2个类。

class class1 : Public object
{
    Q_OBJECT

    Q_PROPERTY(QString Item1 READ getItem1 WRITE setItem1)
    Q_PROPERTY(qint64 Item2 READ getItem2 WRITE setItem2)

private:

    QString Item1;
    qint64 Item2;

public:

    QString getItem1 () const { return Item1;}

    void setItem1 (const QString& Item){ Item1= Item; }

// In the same way i have it for item2

}

Q_DECLARE_METATYPE(class1*);

Class class2 : public QObject
{

    Q_OBJECT

    Q_PROPERTY(QString Item1 READ getItem1 WRITE setItem1)
    Q_PROPERTY(qint64 Item2 READ getItem2 WRITE setItem2)
    Q_PROPERTY(QList<Class1*> class1List READ getclass1List WRITE setclass1List)

private:
    qint64 Item5;
    qint64 Item6;
    QList< class1* > class1List;

public:

    QString getItem5 () const { return Item5;}

    void setItem5 (const QString& Item){ Item5 = Item; }

    QString getItem6 () const { return Item6;}

    void setItem6 (const QString& Item){ Item6 = Item; }

    const QList<class1*> &getclass1List() const { return class1List;}

    void setclass1List(const QList<class1List*> &List) { class1List= List; }

现在我已使用class2class1列表QVariant转换为QJson::QObjectHelper::qobject2qvariant,将class2中的所有数据转换为JSON,但列表已打印为NULL。

请告诉我这个程序有什么问题。

我也尝试了

QList<class1*> getclass1List() const { return class1List;}

void setclass1List(const QList<class1List*> List) { class1Lis = List; }

但是没有使用...我仍然为JSON对象中的list值获取NULL。如果我将相同的列表打印为单独的对象,我将获取数据。

0 个答案:

没有答案