2014-12-11 12 views
5

Ich schreibe einen grundlegenden Texteditor, wo ich HTML-Dateien bearbeiten möchte. Momentan habe ich ein QTextEdit wo ich Text schreiben kann, dann in Datei speichern/aus Datei öffnen.Qt: Wie öffne ich HTML-Datei als einfacher Text?

Das Problem ist, dass wenn ich eine HTML-Datei öffne, wird es nicht als einfacher Text geöffnet. Stattdessen wird es als verarbeitetes HTML geöffnet. Dies passiert auch, wenn ich als .txt speichere. So kann ich schreiben

<html> 
    <h1>Test</h1> 
</html> 

im TextEdit, speichern Sie es als Textdatei. Aber wenn ich es öffne, wird plötzlich HTML verarbeitet. Dasselbe passiert, wenn ich HTML-Dateien öffne, die von Notepad ++ gespeichert werden.

Wie kann ich die Datei im Klartext öffnen, genau wie Notepad?

Heres der Code, den ich ab jetzt haben:

void Notepad::on_actionOpen_triggered() 
{ 
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), QString(), 
                tr("Text Files (*.txt);;C++ Files (*.cpp *h);;All types (*.*)")); 
    if (!fileName.isEmpty()) { 
     QFile file(fileName); 

     if (!file.open(QIODevice::ReadOnly)) { 
      QMessageBox::critical(this, tr("Error"), tr("Could not open file")); 
      return; 
     } 

     QTextStream in(&file); 
     ui->textEdit->setText(in.readAll()); 
     file.close(); 
    } 
} 

Antwort

5

Ich fand schließlich heraus. Es gibt eine Funktion setPlainText()

Ändern mein Code von

ui->textEdit->setText(in.readAll()); 

zu

ui->textEdit->setPlainText(in.readAll()); 

und es öffnet sich alles, was ich Textform, und nicht verarbeitet HTML genannt wird.

Verwandte Themen