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

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

本文关键字:QTextEdit text 状态 changed 一种 简单 方法 有没有      更新时间:2023-10-16

我需要验证我的源文件,甚至省略一些"服务"行,所以我使用QPlainTextEdit appendPlainText()来做到这一点.追加一行当然意味着更改,因此在加载文件后,星号表示文件已更改。我希望有更一致的行为,即加载后,未设置此状态信号。加载文件后如何重置它?

您可以通过两个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(将发出两个信号)。

尝试其中的每一个,让我知道它们中的任何一个是否不起作用。