Не знаю как Вы в int умудрились загнать hex с лидирующими нулями, скорее всего никак и зачем вообще такие извращения...
Вот регулярка в общем:
int i = 16909071;
QString s = QString::number(i, 16);
qDebug()<<"Before"<<s;
QRegularExpression reg("(^[1-9A-F][A-F]?|[0-9A-F]{2})"); //-- Учитываем, если нет лидирующего нуля в начале строки
s = s.toUpper().replace(reg, "0x\\1 ").trimmed();
qDebug()<<"After"<<s;
В ней учитывается отсутствие ведущего нуля, навсякий случай. Если всё таки он всегда будет, то регулярку можно упростить. Имхо, вам тут изначально нужен QByteArray, а не int, но не знаю Вашей задачи целиком, так ч тос смотрите сами.