Результат отладки такого вьІражения:
QString s = QString( "%1 \b%2" );
s.d->data[0] == 37;
s.d->data[1] == 49;
s.d->data[2] == 32;
s.d->data[3] == 8;
s.d->data[4] == 37;
s.d->data[5] == 50;
Никакого удаления предьІдущего символа не произошло. Но даже если бьІ произошло, то в QString передалась бьІ строка с уже удалённьІм символом. Толку...
Ещё есть потенциально опасньІй момент, когда строка вида:
QString s = tr( "%1%2" );
переводится как:
Я так понимаю, что такие неоднозначньІе моментьІ нужно переводить как:
Но тогда будет путаница с индексами исходного текста-ключа и результирующего.
Думаю, самьІй правильньІй вариант теоретически должен бьІть такой:
QString s = QString( "%1%b0%2" ).arg( "A" ).arg( "B" );
%b - некий мной придуманьІй спец-символ для метода
arg(). Когда етот метод находит минимальньІй индекс, которьІй нужно заменить, - он автоматически удаляет следующий за етим индексом
%b.