1

だから、私は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());という行を理解しています。すべてのテキストをプレーンテキストに変換しますが、その方法を使用せずに保存スロットを機能させる方法がわかりません。いつものように、私を助けるためにあなたの時間を捧げてくれて、そして私の質問を読んでくれて本当にありがとう。さらに必要な情報があれば、喜んで提供させていただきます。編集:また、将来的に段落の配置を追加できるようにしたいので、テキストエディタを厳密にリッチテキストにする必要がありますか?

4

1 に答える 1

2

toHtml()の代わりに使用しtoPlainText()ます。setHtml()代わりに使用する設定時setText()

また、toAscii()代わりに使用して、toUtf8()ユーザーの言語コード ページを失わないようにします。

参照: http://doc.qt.io/archives/qt-4.7/qtextedit.html

于 2012-08-31T22:27:33.190 に答える