以编程方式编辑QPlainTextEdit的内容

时间:2015-03-27 07:47:23

标签: c++ qt qplaintextedit

如何以编程方式编辑QPlainTextEdit的内容?

例如,我可能希望实现"查找和替换",或删除特定的文本行,或插入一些文本。

琐碎的方法是完全重新加载内容:

QString text = ui->plainTextEdit->toPlainText();
... // Now edit text.
ui->plainTextEdit->setPlainText(text);

但是,这似乎很浪费,我们也会丢失通过QPlainTextEdit::appendHtml()添加的任何格式。

Removing last line from 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);

我应该使用哪种方法来编辑内容?第二个有什么优势吗?

编辑:它甚至是一种有效的方法,还是一种黑客攻击?

1 个答案:

答案 0 :(得分:1)

QPlainTextEdit文件站:

  

可以使用QTextCursor类或使用。来插入文本   便利函数insertPlainText(),appendPlainText()或paste()。

这是使用QTextCursor编辑的正确方法。