2011-12-14 2 views
2

Я пишу текстовый редактор, используя фреймворк Qt C++. Я использую QPlainTextEdit в качестве центрального виджета, где пользователь записывает свой документ. Текст может быть выделен полужирным шрифтом, выделен курсивом и цветным.Сохранить в HTML с QPlainTextEdit

У меня возникла проблема, когда дело доходит до написания метода сохранения. Я хочу сохранить форматирование, но все, что я нашел, это функция toPlainText(), которая, очевидно, означает, что все форматирование потеряно. Как сохранить форматирование?

Я приложил код для моего спасения функции, только в случае, если мой вопрос не ясно:

bool TextEditor::saveDocument(QString filePath) 
{ 
    qDebug()<<"Saving File at"<<filePath<<endl; 
    QFile document(filePath); 
    if(!document.open(QFile::WriteOnly | QFile::Text)) 
    { 
     qDebug()<<"An Error occur while opening "<<document.fileName()<<endl; 
     return false; 
    } 
    QTextStream writer(&document); 

    writer << ui->Editor->toPlainText(); 
    writer.flush(); 
    document.close(); 
    qDebug()<<"Document saved successfully."; 

    if(this->document == NULL) 
     this->setDocument(&document); 

    return true; 
} 
+1

QPlainTextEdit имеет метод под названием document(), который возвращает QTextDocument. У этого есть функция toHtml, которая может быть использована. НТН. – shekhar

+0

@ user1087135 Если вы уверены, что знаете, что такое решение, отправьте его как ответ, а не комментарий. Помимо того, что вы получаете очки за принятый ответ, он берет вопрос из «неотвеченного» списка ... и позволяет оригинальному плакату принять его, чтобы «закрыть» проблему. – HostileFork

+0

В тех случаях, когда комментарий приводит к решению, OP рекомендуется написать ответ, который включает это решение, и принять его. Но он сохраняет работу для OP, если ответ отправлен как ответ :) –

ответ

2

QPlainTextEdit имеет метод, называемый документ(), который возвращает QTextDocument. У этого есть функция toHtml, которая может быть использована. НТН.

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