2016-02-28 5 views
1

Мне нужно проверить исходный файл и даже опустить некоторые «служебные» строки, , поэтому я делаю это, используя appendPlainText() из QPlainTextEdit. Например, добавление строки означает изменение, поэтому после загрузки файла появляется звездочка, означающая, что файл изменился. Я хотел бы иметь более последовательное поведение, которое после загрузки, этот сигнал состояния не установлен. Как я могу сбросить его после загрузки файла?Есть ли простой способ изменить статус «text changed» в QTextEdit?

ответ

1

Вы можете окружить часть кода, который излучает нежелательный сигнал двумя 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 сразу после загрузки (два сигнала будут испускаться).

Попробуйте каждый из них и сообщите мне, если какой-либо из них не работает.