Splash screen not showing on MacOS Ventura (13.0) (running on an Apple M1) and Qt 6.4.0.
-
I have updated to Ventura and immediately noticed same issue with Qt 5.15.3. The dialog that has a Qt::SplashScreen type won't show up if I start the app from CLI, but works fine when started from the Finder.
The QML logic within the invisible dialog works fine (I properly receive a signal being emitted by a timer in the dialog QML file.
Changing the dialog type to:
Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint
"solves" the issue.@Dariusz-Maciejewski I can confirm your workaround works here as well.
-
@Dariusz-Maciejewski I can confirm your workaround works here as well.
@DerReisende care to share your code? It did not work in my environment.
-
@DerReisende care to share your code? It did not work in my environment.
For all that's worth -- seems like no one seems to care anyways.
I downgraded my M1 mac mini to Big Sur and doing a fresh install (wipe out hard drive ya da ya da ...)
Splash screen is now working with exactly the same code in this configuration.
Wonder if anyone is going to react LOL :) -
For all that's worth -- seems like no one seems to care anyways.
I downgraded my M1 mac mini to Big Sur and doing a fresh install (wipe out hard drive ya da ya da ...)
Splash screen is now working with exactly the same code in this configuration.
Wonder if anyone is going to react LOL :)@TheFlyingMooseMan sorry didnt receive a notification that you replied to me. I am going to check if i can find the requested code again :)
-
For all that's worth -- seems like no one seems to care anyways.
I downgraded my M1 mac mini to Big Sur and doing a fresh install (wipe out hard drive ya da ya da ...)
Splash screen is now working with exactly the same code in this configuration.
Wonder if anyone is going to react LOL :)@TheFlyingMooseMan this what I am using:
QSplashScreen splash(QPixmap(":/resources/splash.png")); #if defined(Q_OS_MAC) && defined(Q_PROCESSOR_ARM) #if QT_VERSION <= QT_VERSION_CHECK(6, 5, 0) //workaround invisible splash screen splash.setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); #endif #endif splash.show();Works for me™...
-
FWIW (Part 2):
Upgraded to Ventura, upgraded XCode to 14.2, redownloaded Qt.
Splash screen disappeared.Going back to Big Sur, and reupgrade to Ventura.
This time I'll not upgrade XCode, but redownload Qt. -
Well, F that.
I thought macos would allow me to go back to Big Sur just using time machine.
It wants me to reinstall Big Sur and then restore from Time Machine.
Since I don't get any responses on this thread, I won't investigate any further, let other people complain about this and let the ingenious minds at Qt prioritize this and figure this out.
Fact is that something has changed in macos libraries. This something is not taken into account by Qt.
My old style HFL 0.02. -
Well, F that.
I thought macos would allow me to go back to Big Sur just using time machine.
It wants me to reinstall Big Sur and then restore from Time Machine.
Since I don't get any responses on this thread, I won't investigate any further, let other people complain about this and let the ingenious minds at Qt prioritize this and figure this out.
Fact is that something has changed in macos libraries. This something is not taken into account by Qt.
My old style HFL 0.02.@TheFlyingMooseMan the best way to make this known is to open a ticket on the bug report system. That way the Qt developers will be made aware of this change.
-
@TheFlyingMooseMan the best way to make this known is to open a ticket on the bug report system. That way the Qt developers will be made aware of this change.
@SGaist Thanks, created: https://bugreports.qt.io/browse/QTBUG-111750
-
I just added a comment with my observations. In particular, the main window show() method activates the Qt app. So if you run from the terminal, the call to show() is the moment the desktop's menu bar switches from 'Terminal' to 'python'. That's also the moment the splash screen shows up, briefly. This is because the splash screen's show() method does not make the app active. If you click on the dock icon of the Qt app during startup then the splash screen shows up just fine.