I must have mentioned already that I am maintaining a project that provides
backported and slightly customised versions of the Cocoa QPA and the Macintosh
style (called Aqua to avoid hiding the official version). The stable branch
currently has these plugins from the qtbase 5.9 branch and will work with Qt
5.8 and 5.9 on OS X 10.9 and up.
I noticed that Qt 5.10 provides the Mac style as a separate plugin and
continues the move away from the HI Toolbox, so I spent some time rebasing my
Aqua implementation on the 5.10 Mac style. (I applied a 5.9->5.10 branch diff
to my sources, which applied with "only" 25 or so failed hunks.)
Somewhat to my surprise there were only a handful changes that required
backporting to Qt 5.8/5.9, and I found only 1 change that I had to backport to
10.9 . In fact, I have the impression there's actually a bit less code that
requires 10.10 or higher.
Overall the style works, including my modifications like a simple
implementation of menu sections (texted separators, rendered as just an
inactive menu item with a separator underneath and/or above). There are a few
- I had to scale the PE_IndicatorArrow arrows an additional factor 4 to get
them to an acceptable size
- the "aqua" pattern in progressbars doesn't animate
- the progressbar doesn't advance in the styles example
- vertical sliders with a knob (QSlider) act weird. In the sliders example it
moves sideways to the left along with the vertical movement. And in another
example (oxygen-demo, from the KDE Oxygen style), it moves correctly along the
vertical progressbar in opposite direction of the vertical scrollbar, but when
I grab the knob itself the slide moves in the opposite direction (and the knob
disappears when I release it).
- horizontal sliders do not (always) display at the correct width immediately
in oxygen-demo (but they do after I switch the application style to and from
any other style).
(Slider widget source from oxygen-demo:
I haven't yet been able to figure out the issues with the animation and
vertical slider. I do include a number of "private" copies of Qt 5.10
implementation files in the plugin build (including qstyleanimation.cpp) so a
priori the plugin should be using the correct version of the classes in
I'd appreciate pointers or suggestions of course (but please don't feel obliged
to waste your time).
Interest mailing list