Qt 如何在QSettings中存储自定义类型?
从API文档: 使用qRegisterMetaType()和注册的自定义类型 qRegisterMetaTypeStreamOperators()可以使用QSettings存储 我该怎么做?我得到一个错误:Qt 如何在QSettings中存储自定义类型?,qt,Qt,从API文档: 使用qRegisterMetaType()和注册的自定义类型 qRegisterMetaTypeStreamOperators()可以使用QSettings存储 我该怎么做?我得到一个错误: qRegisterMetaTypeStreamOperators处的模板参数列表太少 我的代码: class LineUser { public: int uId; QString passwd; qint8 statusType; }; Q_DECLARE_MET
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");
类行用户{
公众:
int-uId;
QString密码;
秦T8型;
};
Q_DECLARE_元类型(LineUser)
QDataStream和operatormyObj.statusType;
返回;
}
qRegisterMetaTypeStreamOperators(“LineUser”);
qRegisterMetaTypeStreamOperators
是一个函数,而不是宏
您需要从.cpp文件调用它,例如在main()方法中谢谢。。。但它会产生一个新的错误:与“运算符”不匹配。请在main.cpp中定义运算符函数。。在调用operator之前,您可能还需要#include
,如果您没有这么做,那么您是否正在尝试存储LineUser*(指针)而不是LineUser对象?如果你想非常感谢你的话,你也可以用这个新错误提出一个新问题,我已经解决了。。QDataStream和操作员(QDataStream和in、LineUser和myObj);让这些功能成为朋友。。。