Hacker News new | ask | show | jobs
by ptx 2338 days ago
Hm, are you sure about that? The documentation[1] for 5.14 still says it uses HIThemes for drawing:

"As with Cocoa and Carbon, Qt provides widgets that look like those described in the Human Interface Descriptions. Qt's widgets use HIThemes to implement the look and feel. In other words, we use Apple's own APIs for doing the rendering."

I guess the documentation could be outdated, but changing over from drawing native-looking widgets to wrapping native widgets (like wxWidgets, SWT and libui) sounds like a big and fundamental (and likely incompatible) change, especially since Qt doesn't do this on other platforms. The release notes[2] don't mention any rewrite of the Mac widget implementation.

[1] https://doc.qt.io/qt-5/macos-issues.html

[2] https://doc.qt.io/qt-5/qt5-intro.html

1 comments

You're right that we no longer use HITheme to render the macOS style for Qt Widgets, we use AppKit. But it's used to render into pixmaps, so we're not actually wrapping native NSViews.
Ah! Learn something new every day.

My knowledge of that came from digging through the source code over the course of the changes. Great to hear from someone more involved with it - and also, great job on the approach, really glad to see it!