[Interest] Qt on macOS 10.14 Mojave

Alexandru Croitor alexandru.croitor at qt.io
Wed Jul 4 16:31:40 CEST 2018

The team working on Qt For Python has already encountered an issue with CA layer backed views.

The current workaround to get tests and integrations succeed is to disable the feature via the currently available environment variable, but I guess 10.14 forces us to use layers, which means we will have a problem in the near future.

The issue is that none of the views / widgets get drawn (-[QNSView displayLayer] is not called).

Unfortunately I was not able to come up with a small reproducible example, but I do have a big reproducible example which involves Qt For Python and the official Python interpreter. 

I've spoken to Simon and Tor Arne, and investigated multiple avenues but I couldn't find what's the problem. 

The best information so far is that it happens because the python executable was built with minimum deployment target 10.6, and Qt is built with a higher one. If I use a Python installer that was built against 10.9, the issue disappears.

I think we will need to either find a different workaround or a proper fix and for that we will need your (macOS QPA team) help.

> On 4. Jul 2018, at 16:19, Morten Sørvig <Morten.Sorvig at qt.io> wrote:
> Hi all,
> macOS 10.14 is now in (public) beta and we've had some time to test Qt on it.
> This time there are (at least) two changes which will impact Qt applications:
> Core Animation layer backed NSViews/QWindows and dark mode. We’re aiming to
> have improvements in place for Qt 5.12. See below for specific details.
> In the mean time it’s possible to continue developing and shipping applications
> for macOS 10.14, also using current Qt versions. This can be done by linking
> against the 10.13 (or earlier) SDK, which will opt out of dark mode support 
> and layer backing. It is the syslibroot argument on the linker line which
> determines the SDK version for this purpose, for example:
>    —Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
> Dark appearance: In theory, applications should pick up the dark appearance via
> the style and palette. In practice, they may not due to incomplete/buggy QPalette
> and QMacStyle implementations, or hardcoded colors in Qt or the application.
> The current state of the patches for dev/5.12 is that custom-styled applications
> can work well in dark mode, for example Qt Creator with a dark theme.
> The plan is to disable dark mode support by default in Qt, at least until
> QMacStyle is fixed. This means that applications will start up using standard
> Aqua theme/colors, also when the desktop is configured for dark mode.
> The application has the final call here, and can opt in or out by setting the
> NSRequiresAquaSystemAppearance key in the Info.plist file. For example:
>  <key>NSRequiresAquaSystemAppearance</key>
>  <false/>
> will indicate that the app _does_ support dark mode, and Qt will get out
> of the way and not apply its disable. Setting it to true will insulate the
> app against any changes in the Qt default.
> Layer backing: We are seeing some issues here, in particular related to
> multithreaded OpenGL (as used by the default threaded Qt Quick render loop).
> We are sorting out if this is something that can or should be fixed in Qt.
> So far we’ve not found a way to opt out of layer backing when on the 10.14
> SDK, so linking against an earlier SDK looks to be the only opt-out option
> here.
> If you want to file a bug for something that is not working, then please
> make sure it has “Mojave” somewhere in the title and we’ll sort it into
> the correct in pile.
> Thanks for reading!
> Morten
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

More information about the Interest mailing list