我正在尝试使用 4.7.3 开发一个 Qt 应用程序,其中涉及将 QList 写入苍蝇。
我的课是:
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;
在使用 Qt 4.7.3 和 GCC 4.4 工具链在 Windows 上编译时,我收到以下错误:
c:\QtSDK\Desktop\Qt\4.7.3\mingw\include\QtCore\qstringlist.h:46:在 c:/QtSDK/Desktop/Qt/4.7.3/mingw/include/QtCore/qstringlist 包含的文件中。小时:46,
c:\QtSDK\Desktop\Qt\4.7.3\mingw\include\QtCore\qdatastream.h:250:错误:'s >> t'中的'operator>>'不匹配
c:\QtSDK\Desktop\Qt\4.7.3\mingw\include\QtCore\qdatastream.h:-1: 在函数'QDataStream& operator<<(QDataStream&, const QList&) [with T = Task]'中:
c:\QtSDK\Desktop\Qt\4.7.3\mingw\include\QtCore\qdatastream.h:263: error: no match for 'operator<<' in 's << ((const QList*)l)-> QList::at with T = Task'
尽管存在 << 和 >> 运算符的重载,但我找不到这些错误的任何原因.....
请帮助任何人,因为这是一个非常重要的应用程序,我必须
提前致谢......