当我收到QLineEdit::textEdited()
信号时,我能看到编辑前的文字是什么吗?我需要比较编辑前的文本和编辑后的文本。
textEdited()
信号只有一个参数,即新文本。调用QLineEdit::text()
也会返回新文本。
现在我只能想到在QString中保存旧文本,并在每次编辑时更新该QString,但我需要考虑程序化更改(通过QLineEdit::setText()
进行)。< / p>
或者是否有另一种拦截文本更改的方法(可能通过验证器),这样我可以在更改之前和更改后同时获取文本?最好仅限用户更改(非程序化)。
答案 0 :(得分:1)
现在我只能想到在QString中保存旧文本,并在每次编辑时更新该QString,但是我需要考虑编程更改(通过QLineEdit :: setText()创建)< / p>
当然,我也只能想到这一点,但请注意,与textEdited()不同,textChanged()允许您甚至根据文档捕获程序化更改:
与textChanged()不同,当以编程方式更改文本时,不会发出此信号,例如,通过调用setText()。