QSimpleStyle is a layer on top of QStyle that shapes it into a
much easier framework to develop styles for.
The need to specify the rectangular area of each subpart of a
widget and having to draw widgets parts in such a non-modular way is
cut down to two methods: one to draw simple primitives (like the arrow
in a combo box), the other to specify certain attributes (like the border
of said arrow).
Plus, this provides an uniform structure and "out of box" support for
such things as high lighting. And you won't loose flexibility; in the
worse case, you can always over-rule a QStyle function to do what you
want and then pass it to QSimpleStyle for the rest.
Developers that want to port their styles from/to GTK+, may have a particular interest in this as the paradigm is similar to that of GTK+.
The reason why QStyle is complicated is because it has to be very well integrated into platforms such as Windows and MacOS, so it needs to be as generic as to allow it to be shapped into the platform's way of painting things (the target platform may have a paintSpinWidget() function and not have them distributed by functions such as paintSpinUpButton()).
For native styles, this complexity is unnecessary and results in not as good results, both visual and code wise.
Warning: this is still young work. But please use it, hack on it as necessary and send those changes back. :)
Get QSimpleStyle from: qsimplestyle.h and qsimplestyle.cpp
An example (below 350 lines) is available at:
svn co https://gtk4qt.svn.sourceforge.net/svnroot/gtk4qt/qmystyle qmystyle
The QSimpleStyle files from the example may be out-dated. You can compile it and install it with "make && sudo make install". Edit first the Makefile so the KDE path reflects that of your system; sorry for that. :/