Собственно не важно для чего можно использовать, просто похоже на баг в Qt.
Пример для проверки:
QDialog d;
QLineEdit edit(&d);
QRegExp rx("-?\\d{1,3}");
QValidator *validator = new QRegExpValidator(rx, &edit);
edit.setValidator(validator);
edit.setInputMask("#nnn"); // <---
d.exec();
Валидатор позволяет только цифры, а маска уже позволяет буквы. Без маски валидатор работает правильно.
А зачем собственно надо - просто когда выставляешь маску, там типа эмулируется режим замены символов - удобно, меньше мороки с валидатором.