1) ничто не мешает вам в функции преобразовывать цвет в HEX и написать в stylesheet "background-color: #XXXXXX".
2) можете использовать палитру.
Проблема в том что мне вместо #XXXXXX нужно указать переменную.
Нужно использовать функцию
QString arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
Примерно так для Qt::darkGray
int color=0x808080;
QString str= tr("background-color: #%1").arg(color,16);