读取文件到QTextBrowser的问题(QT4)

lugaideath1 2009-04-08 05:14:55
void myClass::load()
{
if(!QFile::existe(f))
{
QFile file(f);
if(!file.open(QFile::WriteOnly | QFile::Text)
return;
QTextStream out(&file);
out << "";
}
QFile file(f);
if(!file.open(QFile::ReadOnly | QFile::Text)
return;
QTextStream in(&file);
textBrowser->setHtml(in.readAll());
//qDebug() << in.readAll();
}


我窗体里面有一个按钮调用上面的方法,f是一个文件的路径QString,文件是存在的,而且是有内容的,所以第一个判断就不会进去!
问题就是,当我第一次调用这方法的时候,内容成功地set到QTextBrowser里面,但我第二次按那按钮的时候,内容就被清空!而我改为后台输出,不设内容进去,发现第二次的时候输出结果是"",就是没有读到东西!为什么会这样呢?望高手指点一下!

我的是linux下做的,用QT4.4.3,
...全文
674 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
要做一棵树 2021-06-30
  • 打赏
  • 举报
回复

文件没有关闭。读取文件内容的时候,读取内容的指针已经在文件末尾了。可以在函数末尾加一行

file.close();
lugaideath1 2009-04-09
  • 打赏
  • 举报
回复
我发现问题所在,但找不到方法解决!
问题是当第一次in.readAll()文档的时候,QTextStream的atEnd()是true,当我第二次的时候读同一个文档的时候,QTextStream没有跑回文档头,还是在文档尾, atEnd()一开始就是true,如果第二次读别的文档atEnd()一开始是falsh的,我找不到方法可以使QTextStream跑回文档头!
lugaideath1 2009-04-09
  • 打赏
  • 举报
回复
如果那论坛的高手会答我的问题我就不用来这里问了!我在那里问十个问题基本都没有一个可以回答上的!
ryfdizuo 2009-04-08
  • 打赏
  • 举报
回复
怎么最近老是QT的帖子,
建议lz去QT中文论坛,那里有的是高手:
http://www.qtcn.org/bbs/
  • 打赏
  • 举报
回复
if(!file.open(QFile::WriteOnly | QFile::Text)
return;
貌似你写的时候要append模式打开。
lugaideath1 2009-04-08
  • 打赏
  • 举报
回复
应该是不用close的,因为QFile和QTextStream本身和它的基类好像都没有能用的close这个方法!

而且第二次如果我把f的路径改了还是可以显示内容的!
帅得不敢出门 2009-04-08
  • 打赏
  • 举报
回复
1 bool exists () const
2是不是考虑close();

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧