日期:2014-05-16  浏览次数:20878 次

请问为什么我的QTextBrowser控件只显示了最后一行?
我用QT和KDevelop编程,原本想将根下的一个文本文件log的内容通过QTextBrowser控件全部显示出来,但事实确是只显示了一行,而且是最后一行,不知道问题出在哪里,还是控件的属性设置有问题,请各位高手不吝赐教,到底怎么修改或实现,多谢!
程序清单如下:
    QStringList   lines;
    QFile   file(   "/log "   );
    if   (   file.open(   IO_ReadOnly   )   )   {
            QTextStream   stream(   &file   );
            QString   line;
            while   (   !stream.eof()   )   {
                    printf( "\n ");
                    line   =   stream.readLine();
                    textBrowser1-> setText(line.latin1());
                    lines   +=   line;
            }
            file.close();

------解决方案--------------------
手边没有资料。但是看上去应该是这一行出问题了:
textBrowser1-> setText(line.latin1());

你每次都把内容设置成新的一行,最后当然只显示最后一行了。
看看textBrowser有没有类似appendText之类的函数添加新行。
或者你把这一行去掉,在循环外面一次设置,象这样:
textBrowser1-> setText(lines.latin1());

注意是;lines不是line