读书人

qt文件读写有关问题

发布时间: 2012-03-29 12:53:12 作者: rapoo

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);

读书人网 >QT开发

热点推荐