Все от стиля зависит.
C++ (Qt)
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::setStyle( "plastique" );
QMessageBox::critical( 0, "Alarm", qVersion() );
return 0;
}
У некоторых стилей иконка выводится (windows, motif, cde, plastique).
По умолчанию у меня стоит стиль Oxygen и иконка в диалогах QMessageBox не выводится.