查看完整版本: [-- 初学者提问,如何读取txt文件内容并输出到文本框 --]

QTCN开发网 -> Qt基础编程 -> 初学者提问,如何读取txt文件内容并输出到文本框 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

forkira 2018-05-26 17:27

初学者提问,如何读取txt文件内容并输出到文本框

小弟新手上路,QT版本为5.9.5,在学习某博客的代码时,发现无法从txt文件中正确读取内容并输出。请各位前辈指点一下。最好是代码形式,谢谢!
输出结果[attachment=19014][attachment=19015]
博客代码:
  1. #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QFile>
    #include <QFileDevice>
    #include <QTextStream>
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);

    }

    MainWindow::~MainWindow()
    {
        delete ui;
    }

    void MainWindow::on_pushButton_clicked()
    {
        QString displayString;
        QFile file("text.txt");
        if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
            qDebug()<<"Can't open the file!"<<endl;
        }
        while(!file.atEnd())
        {
            QByteArray line = file.readLine();
            QString str(line);
            qDebug()<< str;
            displayString.append(str);
        }
           ui->textEdit->clear();
           ui->textEdit->setPlainText(displayString);
    }

    void MainWindow::on_pushButton_2_clicked()
    {
        QString displayString;
        QFile file("text.txt");
         if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
             return;

         QTextStream in(&file);
         QString line = in.readLine();

         while (!line.isNull())
         {
    //         process_line(line);
             line = in.readLine();
             displayString.append(line);
         }
           ui->textEdit->clear();
           ui->textEdit->setPlainText(displayString);
    }

    void MainWindow::on_pushButton_3_clicked()
    {
         QString displayString;
         QFile file("text.txt");
          if(!file.open(QIODevice::ReadWrite | QIODevice::Text)) {
              qDebug()<<"Can't open the file!"<<endl;
          }
          QTextStream stream(&file);
          QString line_in;
          stream.seek(file.size());//将当前读取文件指针移动到文件末尾
          int count = 0;
          while(count < 10)
          {
              stream << QObject::trUtf8("新建行:") <<++count<<"/n";
          }
          stream.seek(0);//将当前读取文件指针移动到文件开始
          while( !stream.atEnd())
          {
              line_in = stream.readLine();
              displayString.append(line_in);
              qDebug() << line_in;
          }
          ui->textEdit->clear();
          ui->textEdit->setPlainText(displayString);
    }


dbzhang800 2018-05-28 11:34
搞清楚 常用的汉字编码方式,比如GBK、UTF8,UTF16,UTF16-be,UTF16-le 等

代码没什么好说的,就是 字节流和字符串的无数种转换中,选择和你编码一致的

QByteArray  《===》 QString

c++程序员 2018-06-27 09:34
你可以看看关于file的知识,存储并读取文件内容

cycloveu 2018-06-27 10:08
txt默认的是gb2312,qt默认的是utf-8,你只需要在读取文件的时候这样:
QString text = QString::fromLocal8bit(file.readALl());
textEdit->setText(text);
ok,就是这么easy


查看完整版本: [-- 初学者提问,如何读取txt文件内容并输出到文本框 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled