Когда я получу QLineEdit::textEdited()
сигнал, можно посмотреть какой текст был до редактирования? Мне нужно сравнить текст, как это было до редактирования и текст после редактирования.
textEdited()
Сигнал имеет только один аргумент, который является новым текстом. призвание QLineEdit::text()
также возвращает новый текст.
Прямо сейчас я могу думать только о том, чтобы держать старый текст в QString и обновлять QString каждый раз, когда происходит редактирование, но тогда мне нужно учитывать программные изменения (сделанные через QLineEdit::setText()
).
Или есть другой способ перехватить изменение текста (возможно, через валидаторы), который позволил бы мне получить текст до изменения и после изменения одновременно? Предпочтительно только для пользовательских изменений (не программных).
Прямо сейчас я могу думать только о том, чтобы удерживать старый текст в QString и обновлять эту QString каждый раз, когда происходит редактирование, но тогда мне нужно учитывать программные изменения (сделанные через QLineEdit :: setText ())
Конечно, я могу думать только об этом, но учтите, что в отличие от textEdited () textChanged () позволит вам даже отслеживать программные изменения в соответствии с документацией:
В отличие от textChanged (), этот сигнал не излучается при программном изменении текста, например, путем вызова setText ().