0

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番目に何か利点がありますか?

編集:それは有効なアプローチですか、それとも単なるハックですか?

4

1 に答える 1

1

QPlainTextEditドキュメンテーション スタンド:

テキストは、QTextCursor クラスを使用するか、便利な関数 insertPlainText()、appendPlainText() または paste() を使用して挿入できます。

で編集するのが正しい方法QTextCursorです。

于 2015-03-27T08:02:52.810 に答える