Combobox in Qt for WinRT: strange behaviour
I'm having a strange behaviour on an app developed in Qt 5.5.0 for Windows Runtime 64bit, that can be seen also in the official example under <drive>:\Qt\Examples\Qt-5.5\quick\controls\styles:
when I click on the combobox control, the list of items is shown in a new frame, placed in the top-left corner.
My system is a Windows 8.1 home premium 64bit, and I can see that winrtrunner give me some warnings but starts fine. One of the warning is "Failed to read phone product ID from the manifest", but I think it's not related to the problem.
I'm attaching two screenshots to make things clearer.
Thank you in advance.
Example Combobox Items screenshot
I'm experiencing a similar issue with Menu items on Windows 7 - when clicked, the dropdown items appear in the wrong place, outside of the main application window. The dropdown items are also really, really slow to display - you can observe the frame being drawn separately first, then being filled with the items.
In my case at least, this would seem to be related to one of the Qt 5.5 changes:
- Windows now defaults to the threaded Qt Quick render loop when using desktop OpenGL (opengl32.dll).
When running the app in debug mode, I see the following error message whenever I click a menu or combobox to show a dropdown:
QSGThreadedRenderLoop: expose event received for window QQuickMenuPopupWindow(0x10255e38) with invalid geometry: QRect(2892,258 158x2) on QScreen(0xbc4d40)
...aaaand it's already reported as a bug: https://bugreports.qt.io/browse/QTBUG-46977
I'm experiencing a similar issue with Menu items on Windows 7 - when clicked, the dropdown items appear in the wrong place, outside of the main application window.
I just saw this yesterday on Windows 7 with Enterprise 5.4.2. I created a new QtQuick app and ran it (writing no code), opened the menu while the app was on the left monitor, and the menu items appeared on the right monitor.
in Qt 5.5/Win 8.1 we could not create new Windows at all, hence we needed to grab the currently existing one, empty it and show items of a popup (ie combobox) inside there.
This has been significantly improved with Qt 5.6 for all single-window platforms (also eglfs etc.), so please try that version and report and problems with it on the bugtracker.
As far as I know WinRT implementation is somewhat incomplete. The networking component is still busted in 5.6(git, hopefully they fix it before release. I'm waiting for the next beta iteration to test/report).
According to Maurice Kalinowski, in this video from Qt Developers Days (2015) titled QtWS15- Developing for Windows 10 With Qt, Maurice Kalinowski, The Qt Company said to be till 5.6 is out.
Watch the video, you should get an idea on the progress.
As for the rest of the videos, visit http://www.qt.io/resource-center-qtws15-recommended-playlists/
@David.G why wait for the next beta if you have found something that needs to be fixed ?
I compiled it like 20 days ago from git so I'll have to pull the new latest commits and see if it has been fixed before reporting. Being on a mechanical hard drive compiling Qt takes easily 2-3 hours :/ (on a pc I work on). Plus I usually refrain from reporting bugs on something that hasn't been released (as in I don't report bugs if it comes straight out of git rather than an official release).
I haven't reported most because I haven't had the time honestly. I guess checkout the beta tag so I can leave my computer compiling Qt tonight and create a minimal test to provide.
In that case I'd recommend building only the modules you need rather that all of Qt.
That's why there are alpha, beta and rc releases, to find as much issue as possible and fix them before the release. Thus even if you found something in the beta, make it known, that will help make the next release better :)
I found the same problem with Marcosabba on Qt 5.5 for Winrt, too.
I have just tried to rebuild my application on Qt 5.6, today, it is fixed.
Drop down is shown below combobox control. But it still has a strange behaviour.
When item is dropping down, there is flicker frame.