Получить текст до редактирования изнутри QLineEdit :: textEdited ()

Когда я получу QLineEdit::textEdited() сигнал, можно посмотреть какой текст был до редактирования? Мне нужно сравнить текст, как это было до редактирования и текст после редактирования.

textEdited() Сигнал имеет только один аргумент, который является новым текстом. призвание QLineEdit::text() также возвращает новый текст.

Прямо сейчас я могу думать только о том, чтобы держать старый текст в QString и обновлять QString каждый раз, когда происходит редактирование, но тогда мне нужно учитывать программные изменения (сделанные через QLineEdit::setText()).

Или есть другой способ перехватить изменение текста (возможно, через валидаторы), который позволил бы мне получить текст до изменения и после изменения одновременно? Предпочтительно только для пользовательских изменений (не программных).

2

Решение

Прямо сейчас я могу думать только о том, чтобы удерживать старый текст в QString и обновлять эту QString каждый раз, когда происходит редактирование, но тогда мне нужно учитывать программные изменения (сделанные через QLineEdit :: setText ())

Конечно, я могу думать только об этом, но учтите, что в отличие от textEdited () textChanged () позволит вам даже отслеживать программные изменения в соответствии с документацией:

В отличие от textChanged (), этот сигнал не излучается при программном изменении текста, например, путем вызова setText ().

1

Другие решения


По вопросам рекламы [email protected]