2012-07-13 73 views
3

从API文档:如何在QSettings中存储自定义类型?

Custom types registered using qRegisterMetaType() and qRegisterMetaTypeStreamOperators() can be stored using QSettings.

我怎么能这样做?我得到的错误:

too few template-parameter-lists at qRegisterMetaTypeStreamOperators

我的代码:

class LineUser { 
public: 
    int uId; 
    QString passwd; 
    qint8 statusType; 
}; 

Q_DECLARE_METATYPE(LineUser) 
QDataStream &operator<<(QDataStream &out, const LineUser &myObj) { 
    out<<myObj.uId<<myObj.passwd<<myObj.statusType; 
    return out; 
} 
QDataStream &operator>>(QDataStream &in, LineUser &myObj) { 
    in>>myObj.uId>>myObj.passwd>>myObj.statusType; 
    return in; 
} 
qRegisterMetaTypeStreamOperators<LineUser>("LineUser"); 

回答

4

qRegisterMetaTypeStreamOperators是一个函数,而不是宏。

您需要从.cpp文件(例如,在你的main()方法中

+0

谢谢......但是它创建了一个新的错误:'stream << * t'中'operator <<'不匹配... – 2012-07-13 08:31:06

+0

尝试在main中定义运算符函数。 cpp以及..在运营商呼叫之前<< – 2012-07-13 08:44:12

+0

也许你还需要'#include '如果你还没有做到这一点 – 2012-07-13 08:47:56

相关问题