Qt Can';t使用QDataStream将Qlist写入文件
我正在尝试使用4.7.3开发一个Qt应用程序,其中包括将QList写入flie 我的班级是:Qt Can';t使用QDataStream将Qlist写入文件,qt,operator-overloading,qlist,Qt,Operator Overloading,Qlist,我正在尝试使用4.7.3开发一个Qt应用程序,其中包括将QList写入flie 我的班级是: class Task { public: QString ta, desc; QTime ti; QDate da; int pri, diff; bool ala; }; 对应的QList为:QList任务 我的档案是: QFile theFile("dataBase"); QDataStream stream(&
class Task
{
public:
QString ta, desc;
QTime ti;
QDate da;
int pri, diff;
bool ala;
};
对应的QList为:QList任务
我的档案是:
QFile theFile("dataBase");
QDataStream stream(&theFile);
stream.setVersion(QDataStream::Qt_4_7);
全文如下:
theFile.open(QIODevice::ReadOnly);
stream >> tasks;
写:
theFile.open(QIODevice::WriteOnly);
stream << tasks;
theFile.open(QIODevice::WriteOnly);
流运算符存在,我找不到这些错误的任何原因
请帮助任何人,因为这是一个非常重要的应用,我必须制作
提前感谢….您需要定义自己的操作员进出。。。大概是这样的:
.h文件:
class myClass{
public:
QString name;
QString gender;
QDate birthDay;
QString job;
QString address;
int phoneNo;
};
QDataStream &operator <<(QDataStream &stream, const myClass &myclass);
QDataStream &operator >>(QDataStream &stream, myClass &myclass);
class-myClass{
公众:
QString名称;
性别;
生日;
QString作业;
QString地址;
int-phoneNo;
};
QDataStream和运算符(QDataStream和stream、myClass和myClass);
.cpp文件:
QDataStream &operator <<(QDataStream &stream, const myClass &myclass)
{
stream<<myclass.address;
stream<<myclass.birthDay;
stream<<myclass.gender;
stream<<myclass.job;
stream<<myclass.name;
stream<<myclass.phoneNo;
return stream;
}
QDataStream &operator >>(QDataStream &stream, myClass &myclass)
{
stream>>myclass.address;
stream>>myclass.birthDay;
stream>>myclass.gender;
stream>>myclass.job;
stream>>myclass.name;
stream>>myclass.phoneNo;
return stream;
}
QDataStream&运算符myclass.phoneNo;
回流;
}
请显示运算符重载,并确保定义在您使用它的位置可见(您是否在Task.h
文件中定义了它?)我包含的qdatastream.h标题中已经有了定义。难道它们就不够了吗?看起来你没有为流运算符()提供超载,你不能指望C++神奇地知道如何序列化你的类。它神奇地工作了!谢谢克里斯和图腾!