QDataStream 未按预期工作
Posted
技术标签:
【中文标题】QDataStream 未按预期工作【英文标题】:QDataStream not working as expected 【发布时间】:2017-11-23 12:18:44 【问题描述】:我在 QDataStream 中存储了一些数据并立即获取数据,但在检索时计数显示为零。代码看起来不错,但行为出乎意料
//Overloading
QDataStream& operator<< (QDataStream& writeTO, const CascadeJobInfo& data)
writeTO << data.m_infoJobType << data.m_connectionName << data.m_submitJobId << data.m_submitJobStat;
return writeTO;
QDataStream& operator>> (QDataStream& readIn, CascadeJobInfo& data)
readIn >> data.m_infoJobType >> data.m_connectionName >> data.m_submitJobId >> data.m_submitJobStat;
return readIn;
void Fun()
// Code Starts here
projectFileName = /*Path to folder*/
QFile file(projectFileName);
file.open(QFile::ReadWrite);
file.close();
QDataStream dStream(&file);
int jobLstCount = /*Get the Count, assume 4*/
dStream << jobLstCount;
for(int i = 0; i < jobLstCount; i++)
JobInfo.m_infoJobType = jobFlowItem->getJobType();
JobInfo.m_connectionName = submitItem->connectionName();
JobInfo.m_submitJobId = submitItem->jobID();
JobInfo.m_submitJobStat = submitItem->jobState();
// All valid data stored here
file.close();
QDataStream dStreamOut(&file);
dStreamOut >> jobLstCount; /*Count returns zero here insted of 4*/
CascadeJobInfo jobInfo;
// Why jobLstCount is getting zero here
for(int i = 0 ; i < jobLstCount ; i++)
dStreamOut >> jobInfo;
【问题讨论】:
【参考方案1】: file.open(QFile::ReadWrite);
file.close(); <--- HERE
QDataStream dStream(&file);
您一打开文件就将其关闭,因此基本上您正在使用无效的文件描述符。完成后将 file.close() 放在代码末尾。
【讨论】:
谢谢,它帮助了我以上是关于QDataStream 未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
navigationController?.navigationBar.isUserInteractionEnabled 未按预期工作