Эта функция нормально работает в Windows:
C++ (Qt)
void setButton(QPushButton *but)
{
	QColor color = but->isChecked() ? Qt::darkRed : Qt::darkGreen;
 
	QPalette pal = but->palette();
	pal.setColor(QPalette::ButtonText, color);
	but->setPalette(pal);
}
В Ubuntu 14.04 не работает. Почему? Через setStyleSheet тоже так и не смог такое сделать. 
Строка 
C++ (Qt)
but->setStyleSheet("QPushButton { color:red; }");
 сбрасывает размер шрифта какому-то дефолтному значению. Что делать? нужен кроссплатформенный код, который бы 
только изменял цвет надписи на кнопке и больше ничего не делал. Qt 5.4