Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Splash screen not showing on MacOS Ventura (13.0) (running on an Apple M1) and Qt 6.4.0.
Qt 6.11 is out! See what's new in the release blog

Splash screen not showing on MacOS Ventura (13.0) (running on an Apple M1) and Qt 6.4.0.

Scheduled Pinned Locked Moved Unsolved General and Desktop
20 Posts 5 Posters 4.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #7

    Do you have any message coming out on the terminal that looks out of place ?

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    1 Reply Last reply
    0
    • SGaistS SGaist

      Hi,

      Please provide a minimal compilable example that shows this behaviour.

      Did you check if you have the same issue with an older version of Qt ?

      T Offline
      T Offline
      TheFlyingMooseMan
      wrote on last edited by
      #8

      @SGaist Here is one:

      #include <QApplication>
      #include <QDebug>
      #include <QSplashScreen>
      #include <QMainWindow>
      
      #include "ui_MainWindow.h"
      
      #define SB_DEBUG_INFO  QThread::currentThreadId() << QTime::currentTime().toString() <<  __FILE__ << __FUNCTION__ << __LINE__
      
      class MainWindow : public QMainWindow
      {
          Q_OBJECT
      
      public:
          MainWindow()
          {
              ui.setupUi(this);
          }
      
          Ui::MainWindow ui;
      };
      
      void
      sleep(int seconds)
      {
          QTime dieTime=QTime::currentTime().addSecs(seconds);
          while(QTime::currentTime()<dieTime)
          {
              QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
          }
      }
      
      void displaySpashMountain(QApplication* _app)
      {
          QPixmap pm(":/images/splash.png");
          QSplashScreen splash(pm);
          qDebug() << SB_DEBUG_INFO << pm.height() << pm.width();
      
          splash.show();
          _app->processEvents();
          qDebug() << SB_DEBUG_INFO << "splash screen should show";
      
      
          MainWindow* mw=new MainWindow();
          qDebug() << SB_DEBUG_INFO << "sleep 10s";
          sleep(10);
          qDebug() << SB_DEBUG_INFO << "done sleep 10s";
      
          splash.finish(mw);
          qDebug() << SB_DEBUG_INFO << "splash screen done";
      
      
      }
      
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
      
          displaySpashMountain(&app);
          return 0;
      }
      
      
      T 1 Reply Last reply
      0
      • D Offline
        D Offline
        Dariusz Maciejewski
        wrote on last edited by Dariusz Maciejewski
        #9

        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.

        D 1 Reply Last reply
        0
        • T TheFlyingMooseMan

          @SGaist Here is one:

          #include <QApplication>
          #include <QDebug>
          #include <QSplashScreen>
          #include <QMainWindow>
          
          #include "ui_MainWindow.h"
          
          #define SB_DEBUG_INFO  QThread::currentThreadId() << QTime::currentTime().toString() <<  __FILE__ << __FUNCTION__ << __LINE__
          
          class MainWindow : public QMainWindow
          {
              Q_OBJECT
          
          public:
              MainWindow()
              {
                  ui.setupUi(this);
              }
          
              Ui::MainWindow ui;
          };
          
          void
          sleep(int seconds)
          {
              QTime dieTime=QTime::currentTime().addSecs(seconds);
              while(QTime::currentTime()<dieTime)
              {
                  QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
              }
          }
          
          void displaySpashMountain(QApplication* _app)
          {
              QPixmap pm(":/images/splash.png");
              QSplashScreen splash(pm);
              qDebug() << SB_DEBUG_INFO << pm.height() << pm.width();
          
              splash.show();
              _app->processEvents();
              qDebug() << SB_DEBUG_INFO << "splash screen should show";
          
          
              MainWindow* mw=new MainWindow();
              qDebug() << SB_DEBUG_INFO << "sleep 10s";
              sleep(10);
              qDebug() << SB_DEBUG_INFO << "done sleep 10s";
          
              splash.finish(mw);
              qDebug() << SB_DEBUG_INFO << "splash screen done";
          
          
          }
          
          int main(int argc, char *argv[])
          {
              QApplication app(argc, argv);
          
              displaySpashMountain(&app);
              return 0;
          }
          
          
          T Offline
          T Offline
          TheFlyingMooseMan
          wrote on last edited by
          #10

          @TheFlyingMooseMan @SGaist : is this enough of an example?

          1 Reply Last reply
          0
          • D Dariusz Maciejewski

            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.

            D Offline
            D Offline
            DerReisende
            wrote on last edited by
            #11

            @Dariusz-Maciejewski I can confirm your workaround works here as well.

            T 1 Reply Last reply
            0
            • D DerReisende

              @Dariusz-Maciejewski I can confirm your workaround works here as well.

              T Offline
              T Offline
              TheFlyingMooseMan
              wrote on last edited by
              #12

              @DerReisende care to share your code? It did not work in my environment.

              T 1 Reply Last reply
              0
              • T TheFlyingMooseMan

                @DerReisende care to share your code? It did not work in my environment.

                T Offline
                T Offline
                TheFlyingMooseMan
                wrote on last edited by
                #13

                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 :)

                D 2 Replies Last reply
                0
                • T TheFlyingMooseMan

                  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 :)

                  D Offline
                  D Offline
                  DerReisende
                  wrote on last edited by
                  #14

                  @TheFlyingMooseMan sorry didnt receive a notification that you replied to me. I am going to check if i can find the requested code again :)

                  1 Reply Last reply
                  0
                  • T TheFlyingMooseMan

                    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 :)

                    D Offline
                    D Offline
                    DerReisende
                    wrote on last edited by
                    #15

                    @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™...

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      TheFlyingMooseMan
                      wrote on last edited by
                      #16

                      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.

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        TheFlyingMooseMan
                        wrote on last edited by
                        #17

                        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.

                        SGaistS 1 Reply Last reply
                        0
                        • T TheFlyingMooseMan

                          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.

                          SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #18

                          @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.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          T 1 Reply Last reply
                          0
                          • SGaistS SGaist

                            @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.

                            T Offline
                            T Offline
                            TheFlyingMooseMan
                            wrote on last edited by
                            #19

                            @SGaist Thanks, created: https://bugreports.qt.io/browse/QTBUG-111750

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              David Fokkema
                              wrote on last edited by
                              #20

                              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.

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved