所以,我正在Qt中创建一个文本编辑器。它主要是非常基本的功能。新文件,保存,打开,剪切,复制,粘贴,粗体,下划线,斜体,撤消和重做。但是,当我粗体,斜体或下划线文本,然后再次打开文本文件它打开为纯文本。如果你打开一个文件,加粗一些文本,保存它然后再打开它将是纯文本而不是粗体或任何东西。我试过阅读如何使它按照我想要的方式工作,但没有运气。我的程序甚至可以创建/打开富文本文件,但它的工作方式完全相同。我理解我编写代码的方式使它按照它的方式工作。我只是不知道如何“修复”它。
以下是我编写的使用QFileDialog保存和打开文件的代码块:
void WordWriteMain::on_actionOpen_File_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open a file","","Text (*.txt);;Rich Text (*.rtf)");
QFile file(fileName);
if(file.open(QIODevice::ReadOnly|QIODevice::Text)){
ui->textBox->setText((file.readAll()));
}
}
void WordWriteMain::on_actionSave_triggered()
{
QString fileName = QFileDialog::getSaveFileName(this,"Open a file","","Text (*.txt);;Rich Text (*.rtf)");
QFile file(fileName);
if(file.open(QIODevice::WriteOnly|QIODevice::Text)){
file.write(ui->textBox->toPlainText().toUtf8());
}
}
我正在尝试使用QFileDialog做什么?就像我说我理解行file.write(ui-> textBox-> toPlainText()。Utf8());将所有文本转换为纯文本,但我不知道如何在不这样做的情况下使保存槽工作。 一如既往地非常感谢您花时间帮助我并阅读我的问题。如果需要更多信息,我将非常乐意提供。编辑:此外,我希望将来能够添加段对齐,所以我应该使我的文本编辑器严格富文本?
答案 0 :(得分:2)
使用toHtml()
代替toPlainText()
。
设置时使用setHtml()
代替setText()
同时使用toAscii()
代替toUtf8()
,不要丢失用户的语言代码页。