Если кнопке QPushButton установить setDisabled(true) то текст\картинка установленная на поверхности кнопки обесцветится. Как этого избежать?
Вместо того что б дизэйблить кнопку, задисконнекть ее сигнал от слота, на который у тебя коннект ссылается. Для этой цели хорошо вместо автоматического on_foo_clicked() руками прописать слот onFooClicked() <именно без подчеркиваний>, и коннектить-дисконнектить его руками. Например, коннектить его в конструкторе
QObject::connect(ui.foo, SIGNAL(clicked()), this, SLOT(onFooClicked()))
и в том месте, где ты заново будешь включать кнопку,и дисконнектить
QObject::disconnect(ui.foo, SIGNAL(clicked()), this, SLOT(onFooClicked()))
там, где ты сейчас хочешь ее задизэйблить.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей