I had a similar project long ago. QStyleSheets had not been of any use for this since they are pretty limited as you mentioned.
My solution was to subclass from QTabWidget and to extend the paintEvent. There you can react on the current index and so on and draw some colors/gradients/borders as much as you like.
Bookmarks