Надо сначало дать имя объекту через setObjectName и только после этого можно задавать конкретный стиль для этого объекта, указывая имя объекта вначале которого ставим #. Например
myWidget->setObjectName("myWidget");
QString stl = "#myWidget {border: 1px solid black;"
"border-top-color: white;"
"border-left-color: white;"
"border-right-color: white;"
"border-bottom-color: white;}";
все установки css работают в режиме слияния.
Это работает не всегда. Например, когда я указал для QSpinBox бордюр красный, то отменились все стили для subcontrol-ов, и в таких случаях (может быть и не вовсех), как я понимаю, если у объекта есть subcontrol-ы и ты хочешь поменять какой-то стиль у объекта, то это потребует полное переопределение стилей для всех его subcontrol-ов.