Господа!
Написал небольшую утилитку, которая, в частности, просит ввести данные, и, в случае несоответствия, собирает и выкидывает диалог с развернутым описанием ошибки (диалог пока не в виде отдельного класса, я просто накидал его начерно руками, внутрь блока обработчика ошибки). Вот кусок кода, который призван менять цвет фона метки (QLabel) диалога:
QDialog error;
QVBoxLayout *main = new QVBoxLayout;
QLabel *errPrompt = new QLabel(tr("Error!"));
... skipped ...
QPalette pal(errPrompt->palette());
pal.setColor(QPalette::Base, Qt::red);
pal.setColor(QPalette::Text, Qt::yellow);
errPrompt->setPalette(pal);
... skipped ...
main->addWidget(errPrompt, 0);
error.setLayout(main);
error.exec();
Лишнее я поскипал, т.к. ничего интересного в остальном коде типовая инициализация других виджетов диалога. В результате работы этого кода диалог появляется и полностью функционален, но фон метки остаётся серым, а цвет текста Error! - чёрным. Проверки ради применил палитру глобально, т.е. добавил QApplication::setPalette(pal); В масштабе приложения все замечательно работает, и становится красно-желтым. Подскажите, плиз - это баг или у меня где-то закрался ляп? Сборка Qt динамическая, 4.4.3, под Win32-VS2008.