Это тоже ответ Вишеша, верно?

юбят

QString("Put something here %1 and here %2")
    .arg(replacement1)
    .arg(replacement2);

но все становится зудящим, как только у вас есть малейший шанс, чтоreplacement1 на самом деле содержит%1 или даже%2 в любом месте. Затем второйQString::arg() заменит только вновь введенный%1 или оба%2 вхождения. Во всяком случае, вы не получите буквальное"%1" что вы, вероятно, намеревались.

Есть ли какой-нибудь стандартный трюк для преодоления этого?

Если вам нужен пример для игры, возьмите

#include <QCoreApplication>
#include <QDebug>

int main()
{
    qDebug() << QString("%1-%2").arg("%1").arg("foo");
    return 0;
}

Это будет выводить

"foo-%2"

вместо

"%1-foo"

как и следовало ожидать (нет).

    qDebug() << QString("%1-%2").arg("%2").arg("foo");

дает

"foo-foo"

а также

    qDebug() << QString("%1-%2").arg("%3").arg("foo");

дает

"%3-foo"

Ответы на вопрос(3)

Ваш ответ на вопрос