Bonjour,
cela faisait longtemps que je n'avais pas utilisé QxOrm, et j'ai donc créé un nouveau projet récemment pour m'y remettre, et bon dans toutes mes classes utilisant QxOrm, j'ai une erreur lors de la compilation concernant la définition de l'id:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
error: no matching function for call to 'qx::QxClass<RSSItem>::id(int RSSItem::*, const char [3])'
Voici ma classe:
RSSItem.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef RSSITEM_H
#define RSSITEM_H
 
class RSSChannel;
 
#include <QString>
#include <QDateTime>
#include <QUrl>
#include <QMetaType>
 
class RSSItem
{
    QX_REGISTER_FRIEND_CLASS(RSSItem)
    public:
        typedef qx::dao::ptr<RSSChannel> RSSChannelPtr;
 
    RSSItem();
    virtual ~RSSItem() { ; }
    void setTitle(const QString &title);
    QString title() const;
 
    void setDateTime(const QDateTime &datetime);
    QDateTime dateTime() const;
 
    void setLink(const QString &link);
    QString link() const;
 
    void setDescritpion(const QString &description);
    QString description() const;
 
    void setGuid(const QString &guid);
    QString guid() const;
 
    void setRead(bool set);
    bool read() const;
 
    void setMarked(bool set);
    bool marked() const;
private:
    int _id;
    QString _title;
    QDateTime _datetime;
    QString _link;
    QString _description;
    QString _guid;
    RSSChannelPtr _channel;
    bool _read;
    bool _marked;
};
 
QX_REGISTER_HPP_RSS(RSSItem, qx::trait::no_base_class_defined, 0)
typedef qx::dao::ptr<RSSItem> RSSItemPtr;
typedef QList<RSSItemPtr> RSSItemPtrList;
 
Q_DECLARE_METATYPE(RSSItem);
Q_DECLARE_METATYPE(RSSItemPtr);
#endif // RSSITEM_H
RSSItem.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "precompiled.h"
#include "rsschannel.h"
#include "rssitem.h"
#include <QxMemLeak.h>
 
QX_REGISTER_CPP_RSS(RSSItem)
 
namespace qx {
template <> void register_class(QxClass<RSSItem> & t)
{
        t.id(&RSSItem::_id, "id");
        t.data(&RSSItem::_datetime, "datetime");
        t.data(&RSSItem::_title, "title");
        t.data(&RSSItem::_description, "description");
        t.data(&RSSItem::_link, "url");
        t.data(&RSSItem::_guid, "guid");
        t.data(&RSSItem::_marked, "marked");
        t.data(&RSSItem::_read, "read");
 
        t.relationManyToOne(&RSSItem::_channel, "channel_id");
}}
 
RSSItem::RSSItem() : _read(false), _marked(true)
{
}
...
Je pense que cela doit venir de mon code, mais j'ai beau cherché, je ne trouve pas.

Merci d'avance.