QPlainTextEdit の内容をプログラムで編集するにはどうすればよいですか?
たとえば、「検索と置換」を実装したり、特定のテキスト行を削除したり、テキストを挿入したりすることができます。
簡単な方法は、内容を完全にリロードすることです。
QString text = ui->plainTextEdit->toPlainText();
... // Now edit text.
ui->plainTextEdit->setPlainText(text);
ただし、これは無駄に思えQPlainTextEdit::appendHtml()
ます。
別のアプローチはQTextEdit から最後の行を削除する で概説されています - それらはテキストを編集しているユーザーをシミュレートします。答えは QTextEdit ですが、QPlainTextEdit でも同様に機能すると思います。
ui->textEdit_2->setFocus();
QTextCursor storeCursorPos = ui->textEdit_2->textCursor();
ui->textEdit_2->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
ui->textEdit_2->moveCursor(QTextCursor::StartOfLine, QTextCursor::MoveAnchor);
ui->textEdit_2->moveCursor(QTextCursor::End, QTextCursor::KeepAnchor);
ui->textEdit_2->textCursor().removeSelectedText();
ui->textEdit_2->textCursor().deletePreviousChar();
ui->textEdit_2->setTextCursor(storeCursorPos);
コンテンツを編集するには、どのアプローチを使用すればよいですか? 2番目に何か利点がありますか?
編集:それは有効なアプローチですか、それとも単なるハックですか?