Hi,
this is most probably because on a change you select all text on the line edit. Thus the whole is being deleted when you call QLineEdit::backspase() like the documentation says. So before calling backspace() make sure no text is selected and the cursor is at the end.
Bookmarks