qt文件读写问题
弄了一下午最后一个还是没有解决
写入
for(int i=0;i<it.size();i++)
{
anquantongdao *my = dynamic_cast<anquantongdao *>(it.value(i));
if(my!=0) //anquantongdao是继承的QGraphicsItem
{
out<<my->scenePos();
out<<my->youjiancaidan;
out<<my->light;
}
}
读出
while(!file.atEnd())
{
QPointF po;
int x;
int lig;
in>>po>>x>>lig;
anquantongdao *newanquan = new anquantongdao;
newanquan->setLight(lig);
newanquan->setYoujiancaidan(x);
scene->addItem(newanquan);
newanquan->setPos(po);
}
把这段注释起来,前面的读写都没问题
这段一用,就异常,感觉是循环出了问题
[解决办法]
while(!file.atEnd())
{
QPointF po;
int x;
int lig;
in>>po>>x>>lig;
qDebug()<<po<<x<<lig;逐个输出变量值,看看文件有没有被正确读取。
anquantongdao *newanquan = new anquantongdao;
newanquan->setLight(lig);
newanquan->setYoujiancaidan(x);
scene->addItem(newanquan);
newanquan->setPos(po);
}
第一步先将代码这样改动,注视掉红色的部分。增加qDebug.
如果正常,将红色的部分改动如下:
anquantongdao *newanquan = new anquantongdao;
scene->addItem(newanquan);
newanquan->setLight(lig);
newanquan->setYoujiancaidan(x);
newanquan->setPos(po);