2015-04-04 6 views
1

В настоящее время я копирую текст в LineEdit, а при нажатии кнопки PushButton он записывает текст в файл, который является «data.txt». Я написал readfile(), который будет читать текст из data.txt, а при нажатии кнопки PushButton он должен отображать текст в новом линейном формате в LineEdit. Вот мой код:Как установить QLineEdit с новой строкой

void MainWindow::writefile() 
    { 
     QString str = ui->lineEdit->text(); 
     QString filename = "data.txt"; 
     QFile file(filename); 
     file.open(QIODevice::WriteOnly|QIODevice::Text); 
     QTextStream out(&file); 
     out<<str<<endl; 
     file.close(); 
    } 
    void MainWindow::readfile() 
    { 
     QString filename = "data.txt"; 
     QFile file(filename); 
     file.open(QIODevice::ReadOnly|QIODevice::Text); 
     QTextStream in(&file); 
     QString str = in.readLine(); 
     ui->lineEdit_2->setText(str); 
     file.close(); 
    } 
void MainWindow::on_pushButton_2_clicked() 
{ 
    readfile(); 
} 
void MainWindow::on_pushButton_clicked() 
{ 
    writefile(); 
} 

Просьба предложить, как разделить эти разделенных запятыми строк и должны отображаться в новом формате строки

File Input Output

ответ

1

Документация QLineEdit говорит:

Редактирование строки позволяет пользователю вводить и редактировать одну строку обычного текста [...]

Связанный класс: QTextEdit, который позволяет многострочный текстовый редактор.

Таким образом, вы должны использовать QTextEdit виджет вместо QLineEdit, чтобы многострочный текст. Он также имеет setText, поэтому вы можете использовать его таким же образом.

Чтобы заменить запятые символы новой строки использовать replace метод:

// ... 

QString str = in.readLine(); 
str = str.replace(",", "\n"); 
ui->textEdit_2->setText(str); 

//... 
Смежные вопросы