Qt Quick apps crash when clicking on ComboBox/drop-down menu
-
I have just installed Qt with Qt Creator on Windows 7 x64 using the pre-compiled package "Qt 5.1.1 for Windows 32-bit (VS 2010, OpenGL, 504 MB)" because I have Visual Studio 2010 32-bit installed already. I chose the OpenGL version because the notes suggested it if the app should run on Windows XP.
Compiling and running the Qt Widget-based example "Application Example" worked fine. However, I then tried the "Qt Quick Controls - Gallery" example. When running it and clicking on either the Button2 menu or the drop-down with "Apple" on it, the app immediately crashes with the following stack trace:
0 DllMain atioglxx 0x69039ac4
1 DrvDescribePixelFormat atioglxx 0x6903b379
2 wglGetProcAddress OPENGL32 0x745dc6b7
3 wglGetPixelFormat OPENGL32 0x745e5658
4 wglSetPixelFormat OPENGL32 0x745e6405
5 SetPixelFormat GDI32 0x76565973
6 qt_plugin_instance qwindows 0x5668ddd9
7 QOpenGLContext::makeCurrent Qt5Gui 0x58736a36
8 QSGRenderLoop::instance Qt5Quick 0x5b452c93
9 QAbstractEventDispatcherPrivate::releaseTimerId Qt5Core 0x5a9ac95e
10 QSGNode::nextSibling Qt5Quick 0x5b4533db
11 QSGNode::nextSibling Qt5Quick 0x5b453961
12 QSGNode::nextSibling Qt5Quick 0x5b45396f
13 QWindow::event Qt5Gui 0x5871a99f
14 QCoreApplicationPrivate::sendThroughApplicationEventFilters Qt5Core 0x5a9af516
15 QQuickWindow::event Qt5Quick 0x5b46d8bd
16 QApplicationPrivate::notify_helper Qt5Widgets 0x5682f9d7
17 QApplicationPrivate::notify_helper Qt5Widgets 0x5682f9e9
18 QApplication::notify Qt5Widgets 0x568336c9
19 QGuiApplicationPrivate::processWindowSystemEvent Qt5Gui 0x587178d3
... <More>The interesting thing is that it only crashes when the app window is on a particular monitor. I have three monitors, two connected to an ATI AMD 760G graphics card and the third connected to an older Nvidia Geforce 7300 LE. Only if I click the drop-down with the app on the monitor controlled by the Nvidia does the app crash. However, the crash happens in atioglxx.dll which suggests the ATI driver.
I also tried the TableView example with the exact same result.
I checked my video drivers and they are both up to date. Also downloaded OpenGL Extensions Viewer to find out what OpenGL version I have and it says 3.2. Inside this utility, I can only see AMD 760G though, there is no entry for the Nvidia card.
Does anyone know what's going on here? I was planning on using Qt Quick for a new desktop app project with a custom GUI but this does not inspire confidence. How do I know it's not going to crash out of the box on certain graphics cards? Would I be better off with ANGLE? Or is it better to stick to Qt Widgets for Windows desktop apps for now?
-
It sounds like using Angle would solve your issue as the quality of DirectX driers tend to be better on windows. I would suggest at least trying to see if that solves your issue. But regardless you should report this as a bug. I suspect using Qt Quick on multiple graphics cards on the same desktop has simply not been tested that much given how rare such configurations are.
-
Thanks for replying.
I did investigate ANGLE as an option for a while, but couldn't satisfactorily establish exactly what Windows versions it would support. The official Qt docs (http://qt-project.org/wiki/Qt-5-on-Windows-ANGLE-and-OpenGL) have a vague wording about ANGLE not working on XP saying "it does not fully work and may lead to crashes", whereas other sources I've found say it will work on XP SP2 and upwards, plus anything else that has DirectX 9.0c.
Anyhow, because of this uncertainty I decided to use old-school Qt Widgets for this project in the end.
PS. I admit it's an unusual monitor configuration, at least for the general public (maybe not so much for developers, I've worked with guys rocking 5-monitor setups), but I've never experienced a similar issue with any other apps on this setup.
-
I have reported a bug for the same "QTBUG-35989":https://bugreports.qt-project.org/browse/QTBUG-35989. Please vote there.