有没有一种简单的方法可以更改 QTextEdit 中的 "text changed" 状态?

Is there a simple way to change the "text changed" status in QTextEdit?

我需要验证我的源文件甚至省略一些 "service" 行, 所以我使用 QPlainTextEditappendPlainText() 来做到这一点。追加一行 当然意味着改变,所以加载文件后,星号表示文件改变了。我想要更一致的行为,即加载后未设置此状态信号。加载文件后如何重置它?

您可以通过两次 QObject::blockSignals 调用包围发出不需要信号的代码部分:

textEdit->blockSignals(true);
// load from file
textEdit->blockSignals(false);

或直接在 QTextEdit::document 上(我想会阻止更少的其他信号):

textEdit->document()->blockSignals(true);
// load from file
textEdit->document()->blockSignals(false);

甚至可以在加载后立即调用 QTextEdit::setModified(将发出两个信号)。

尝试其中的每一个,如果其中任何一个不起作用,请告诉我。