QT c ++ - 从文件读取一行到文本浏览器 - 保持一行

时间:2016-10-04 18:40:04

标签: c++ qt

我正在尝试读取一个在各行上都有服务器名称的文件。

我希望文本浏览器中的输出为.*<servername>|<servername>|<servername>.*

一行

我已经将两个读数直接尝试到文本浏览器,然后读取数组并从数组中输出。这两种方法都会导致文本浏览器在自己的行上显示每个项目。我希望所有输出都在同一条线上。也许它是append方法或导致它的.readLine方法?

这是我的代码:

void MainWindow::on_pushButton_clicked()
{   
    QString myfile=QFileDialog::getOpenFileName(
                this,
                tr("Open File"),
                "C://",
                "Text File (*.txt)"
                );

    QFile file(myfile);
    if(!file.open(QIODevice::ReadOnly))
        QMessageBox::information(0,"info",file.errorString());

    QTextStream in(&file);
    ui->textBrowser->append(".*");

    while (!file.atEnd())
    {
        QString line = file.readLine();
        ui->textBrowser->append(line);
        ui->textBrowser->append("|");
    }

    file.close();
}

1 个答案:

答案 0 :(得分:0)

readLine的返回包括返回缓冲区中的换行符。所以当你把它写到包含换行符的textBrowser时。

有关详细信息,请参阅qiodevice::readLine文档。