что конкретно вызывает сложности? надо:
1. сохранить указатель на QMessageBox в член класса
2. создать свой метод-слот
3. привязать сигнал timeout к этому слоту вместо существующего close()
4. в слоте поменять текст бокса
5. в нужный момент закрыть бокс в этом слоте
а как поменять кнопку по умолчанию можно прочесть в документации.
Можно и так. Мое решение больше подходит, если в проекте такие диалоги используются в нескольких местах.