Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-65641

qFatal() causes crash with "QPixmap: Must construct a QGuiApplication before a QPixmap" when closing window with multiple QCoreApplications

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P3: Somewhat important P3: Somewhat important
    • None
    • 5.9.1
    • Virtual Keyboard
    • None

      Hi, below is the code that is used in my project.

      1. When the login window is displayed, click in one of the input fields to show the virtual keyboard.
      2. Hide the virtual keyboard.
      3. Press escape to close the login window. The application will crash with "QPixmap: Must construct a QGuiApplication before a QPixmap".
      #include <QApplication>
      #include <SingleApplication.h>
      #include <QDialog>
      
      #include <QtCore/QCoreApplication>
      #include <QtWidgets/QApplication>
      #include <VLCQtCore/Common.h>
      
      
      #include "logging.h"
      #include "login.h"
      #include "pvmswindow.h"
      
      int main(int argc, char *argv[])
      {
          int currentExitCode = 0;
       
          do
          {
              qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
       
              QCoreApplication::setApplicationName("VLC-Qt Simple Player");
              QCoreApplication::setAttribute(Qt::AA_X11InitThreads);
       
              SingleApplication app(argc, argv);
       
              VlcCommon::setPluginPath(app.applicationDirPath() +"/plugins");
       
              Login login;
              login.showFullScreen();
       
              if(login.exec() == QDialog::Accepted)
              {
                  PvmsWindow w; //("admin", "123456", "admin right");
                  QObject::connect( &app, &SingleApplication::instanceStarted, [ &w ]() \{
                      w.raise();
                      w.activateWindow();
                  });
       
                  w.showFullScreen();
                  currentExitCode = app.exec();
              }
          }while (currentExitCode == PvmsWindow::EXIT_CODE_REBOOT);
       
          return currentExitCode;
      }
      
      
      1  qt_message_fatal                                                                                                                                                                                    qlogging.cpp               1684 0x52a9262b     
      2  QMessageLogger::fatal                                                                                                                                                                               qlogging.cpp               796  0x52a90e52     
      3  qt_pixmap_thread_test                                                                                                                                                                               qpixmap.cpp                75   0x7ffac1108041 
      4  QPixmap::QPixmap                                                                                                                                                                                    qpixmap.cpp                110  0x7ffac1104608 
      5  QCursorData::QCursorData                                                                                                                                                                            qcursor.cpp                624  0x7ffac102da76 
      6  QCursorData::initialize                                                                                                                                                                             qcursor.cpp                655  0x7ffac102dba1 
      7  QCursor::QCursor                                                                                                                                                                                    qcursor.cpp                471  0x7ffac102cbf9 
      8  QWindowPrivate::setCursor                                                                                                                                                                           qwindow.cpp                2706 0x7ffac102595c 
      9  QWindow::unsetCursor                                                                                                                                                                                qwindow.cpp                2680 0x7ffac1023204 
      10 QQuickItemPrivate::derefWindow                                                                                                                                                                      qquickitem.cpp             3042 0x7ffab5188110 
      11 QQuickItemPrivate::derefWindow                                                                                                                                                                      qquickitem.cpp             3063 0x7ffab5188268 
      12 QQuickItemPrivate::derefWindow                                                                                                                                                                      qquickitem.cpp             3063 0x7ffab5188268 
      13 QQuickItemPrivate::derefWindow                                                                                                                                                                      qquickitem.cpp             3063 0x7ffab5188268 
      14 QQuickItem::setParentItem                                                                                                                                                                           qquickitem.cpp             2731 0x7ffab5179132 
      15 QQuickItem::~QQuickItem                                                                                                                                                                             qquickitem.cpp             2374 0x7ffab517873e 
      16 QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement<QQuickItem>                                                                                                                                      qqmlprivate.h              104  0x7ffab521544d 
      17 QQmlPrivate::QQmlElement<QQuickItem>::`scalar deleting destructor'                                                                                                                                  Qt5Quickd                       0x7ffab5218657 
      18 QQuickView::~QQuickView                                                                                                                                                                             qquickview.cpp             208  0x7ffab52f1f06 
      19 QtVirtualKeyboard::InputView::~InputView                                                                                                                                                            qtvirtualkeyboardplugind        0x7ffac02a2e24 
      20 QtVirtualKeyboard::InputView::`scalar deleting destructor'                                                                                                                                          qtvirtualkeyboardplugind        0x7ffac02a2e57 
      21 QScopedPointerDeleter<QtVirtualKeyboard::InputView>::cleanup                                                                                                                                        qscopedpointer.h           60   0x7ffac02a2aaa 
      22 QScopedPointer<QtVirtualKeyboard::InputView,QScopedPointerDeleter<QtVirtualKeyboard::InputView>>::~QScopedPointer<QtVirtualKeyboard::InputView,QScopedPointerDeleter<QtVirtualKeyboard::InputView>> qscopedpointer.h           108  0x7ffac02a26f0 
      23 QtVirtualKeyboard::DesktopInputPanelPrivate::~DesktopInputPanelPrivate                                                                                                                              qtvirtualkeyboardplugind        0x7ffac02a275a 
      24 QtVirtualKeyboard::DesktopInputPanelPrivate::`scalar deleting destructor'                                                                                                                           qtvirtualkeyboardplugind        0x7ffac02a29c7 
      25 QScopedPointerDeleter<QObjectData>::cleanup                                                                                                                                                         qscopedpointer.h           60   0x52ede179     
      26 QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData>>::~QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData>>                                                                     qscopedpointer.h           107  0x52edc899     
      27 QObject::~QObject                                                                                                                                                                                   qobject.cpp                1032 0x52ece73f     
      28 QtVirtualKeyboard::AbstractInputPanel::~AbstractInputPanel                                                                                                                                          abstractinputpanel.cpp     77   0x7ffac0293bd3 
      29 QtVirtualKeyboard::AppInputPanel::~AppInputPanel                                                                                                                                                    appinputpanel.cpp          46   0x7ffac02a2fa2 
      30 QtVirtualKeyboard::DesktopInputPanel::~DesktopInputPanel                                                                                                                                            desktopinputpanel.cpp      98   0x7ffac02a1342 
      31 QtVirtualKeyboard::DesktopInputPanel::`scalar deleting destructor'                                                                                                                                  qtvirtualkeyboardplugind        0x7ffac02a2977 
      32 QObjectPrivate::deleteChildren                                                                                                                                                                      qobject.cpp                1992 0x52ed45b6     
      33 QObject::~QObject                                                                                                                                                                                   qobject.cpp                1022 0x52ece6c0     
      34 QPlatformInputContext::~QPlatformInputContext                                                                                                                                                       qplatforminputcontext.cpp  92   0x7ffac0fd0683 
      35 QtVirtualKeyboard::PlatformInputContext::~PlatformInputContext                                                                                                                                      platforminputcontext.cpp   63   0x7ffac02647c9 
      36 QtVirtualKeyboard::PlatformInputContext::`scalar deleting destructor'                                                                                                                               qtvirtualkeyboardplugind        0x7ffac0266e07 
      37 QScopedPointerDeleter<QPlatformInputContext>::cleanup                                                                                                                                               qscopedpointer.h           60   0x7ffac05fae5a 
      38 QScopedPointer<QPlatformInputContext,QScopedPointerDeleter<QPlatformInputContext>>::~QScopedPointer<QPlatformInputContext,QScopedPointerDeleter<QPlatformInputContext>>                             qscopedpointer.h           108  0x7ffac05fa510 
      39 QWindowsIntegrationPrivate::~QWindowsIntegrationPrivate                                                                                                                                             qwindowsintegration.cpp    246  0x7ffac05f8502 
      40 QWindowsIntegrationPrivate::`scalar deleting destructor'                                                                                                                                            qwindowsd                       0x7ffac05faad7 
      41 QScopedPointerDeleter<QWindowsIntegrationPrivate>::cleanup                                                                                                                                          qscopedpointer.h           60   0x7ffac05fadf4 
      42 QScopedPointer<QWindowsIntegrationPrivate,QScopedPointerDeleter<QWindowsIntegrationPrivate>>::~QScopedPointer<QWindowsIntegrationPrivate,QScopedPointerDeleter<QWindowsIntegrationPrivate>>         qscopedpointer.h           108  0x7ffac05fa4e0 
      43 QWindowsIntegration::~QWindowsIntegration                                                                                                                                                           qwindowsintegration.cpp    263  0x7ffac05f6784 
      44 QWindowsGdiIntegration::~QWindowsGdiIntegration                                                                                                                                                     qwindowsgdiintegration.cpp 62   0x7ffac0696863 
      45 QWindowsGdiIntegration::`scalar deleting destructor'                                                                                                                                                qwindowsd                       0x7ffac0696bd7 
      46 QGuiApplicationPrivate::~QGuiApplicationPrivate                                                                                                                                                     qguiapplication.cpp        1540 0x7ffac1003951 
      47 QApplicationPrivate::~QApplicationPrivate                                                                                                                                                           qapplication.cpp           189  0x51bba31a     
      48 QApplicationPrivate::`vector deleting destructor'                                                                                                                                                   Qt5Widgetsd                     0x51bc9c99     
      49 QScopedPointerDeleter<QObjectData>::cleanup                                                                                                                                                         qscopedpointer.h           60   0x52ede179     
      50 QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData>>::~QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData>>                                                                     qscopedpointer.h           107  0x52edc899     
      51 QObject::~QObject                                                                                                                                                                                   qobject.cpp                1032 0x52ece73f     
      52 QCoreApplication::~QCoreApplication                                                                                                                                                                 qcoreapplication.cpp       882  0x52e76cd5     
      53 QGuiApplication::~QGuiApplication                                                                                                                                                                   qguiapplication.cpp        649  0x7ffac1001911 
      54 QApplication::~QApplication                                                                                                                                                                         qapplication.cpp           870  0x51bb3f5c     
      55 SingleApplication::~SingleApplication                                                                                                                                                               singleapplication.cpp      416  0x7ff7c408a84e 
      56 main                                                                                                                                                                                                main.cpp                   44   0x7ff7c40838c0 
      57 WinMain                                                                                                                                                                                             qtmain_win.cpp             104  0x7ff7c4092a1d 
      58 invoke_main                                                                                                                                                                                         exe_common.inl             107  0x7ff7c40904fd 
      59 __scrt_common_main_seh                                                                                                                                                                              exe_common.inl             283  0x7ff7c40903b7 
      60 __scrt_common_main                                                                                                                                                                                  exe_common.inl             326  0x7ff7c409027e 
      61 WinMainCRTStartup                                                                                                                                                                                   exe_winmain.cpp            17   0x7ff7c4090589 
      62 BaseThreadInitThunk                                                                                                                                                                                 KERNEL32                        0x7ffb06f01fe4 
      63 RtlUserThreadStart                                                                                                                                                                                  ntdll                           0x7ffb079defb1 
      

        1. pvms_n.7z
          18 kB
          书原 郑
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            jakoivik Jarkko Koivikko
            soyoo 书原 郑
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes