[Interest] Qt on macOS 10.14 Mojave

Alexandru Croitor alexandru.croitor at qt.io
Thu Jul 5 13:55:29 CEST 2018


Hi,

Yesterday / today I figured the issue out.

I'm writing a long explanation in a bug report, and will push a commit shortly.


> On 5. Jul 2018, at 13:41, Morten Sørvig <Morten.Sorvig at qt.io> wrote:
> 
> Hi, 
> 
> This is something we can look at after the summer break. Could you create
> a bug report in the mean time with the relevant details?
> 
> Morten
> 
>> On 4 Jul 2018, at 16:31, Alexandru Croitor <alexandru.croitor at qt.io> wrote:
>> 
>> 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