ListView.OverlayHeader Bug (Freezing UI)
-
Hi,
First I'm using Qt 5.4.2 for VS 2013 on Windows 7 64 bits with Qt Creator 3.6.
I'm building a Listview scrollable with multiple columns but having fixed header. From what I've read I should use the property "headerPositionning" of the Listview set to OverlayHeader. But I found that if I set the listview height with a percentage of the windows height, this is freezing the UI (maybe a forever loop or deadlock I don't know but I can no longer move or resize the window).
Here is complete exemple of how to reproduce :
import QtQuick 2.4 import QtQuick.Window 2.2 import QtQuick.Controls 1.2 Window { id : mainWindow visible: true width: 800 height: 480 property real gridListWidth : (width * 0.60) property real gridListHeight : (height * 0.50) property real gridCellSpacing : (height * 0.004) property real gridCellHeight : (height * 0.039) property real gridCellWidth : (width * 0.20) Rectangle { id : rectBackground anchors.fill: parent color : "white" ListView { id : ls width: mainWindow.gridListWidth height: mainWindow.gridListHeight clip : true headerPositioning: ListView.OverlayHeader spacing : mainWindow.gridCellSpacing model: ListModel { ListElement { name: "Bill Smith" number: "555 3264" hairColor: "red" } ListElement { name: "John Brown" number: "484 7789" hairColor: "blue" } ListElement { name: "Sam Wise" number: "284 1547" hairColor: "yellow" } } header : Row { spacing : mainWindow.gridCellSpacing Rectangle { width : mainWindow.gridCellWidth height : mainWindow.gridCellHeight color : "blue" Text { anchors.centerIn: parent color : "white" text: "Name" } } Rectangle { width : mainWindow.gridCellWidth height : mainWindow.gridCellHeight color : "blue" Text { anchors.centerIn: parent color : "white" text: "Number" } } Rectangle { width : mainWindow.gridCellWidth height : mainWindow.gridCellHeight color : "blue" Text { anchors.centerIn: parent color : "white" text: "Hair Color" } } } delegate: Row { spacing : mainWindow.gridCellSpacing Rectangle { width : mainWindow.gridCellWidth height : mainWindow.gridCellHeight color : "red" Text { anchors.centerIn: parent color : "white" text: name } } Rectangle { width : mainWindow.gridCellWidth height : mainWindow.gridCellHeight color : "red" Text { anchors.centerIn: parent color : "white" text: number } } Rectangle { width : mainWindow.gridCellWidth height : mainWindow.gridCellHeight color : "red" Text { anchors.centerIn: parent color : "white" text: hairColor } } } } } }
If we comment the following line ;
headerPositioning: ListView.OverlayHeader
the freezing does not occurred. But I need fixed header and I would prefer handling it in the header item of the ListView. Is someone else is having a freezing UI like me ?
Best regards,
-
Hi,
Just tested your code and indeed, it's also freezing with Qt 5.6 on OS X.
You should take a look at the bug report system to see if it's something known. If not please consider opening a new report providing a minimal compilable example reproducing the behavior.
-
Thank you SGaist.
I created an account and create the issue : https://bugreports.qt.io/browse/QTBUG-50105
-
Thanks for sharing the link !
-
This was definitively a bug, this will be fixed for version 5.6. I'm stuck with version 5.4.2 for now thus as a workaround I'm using a Row element on top of the list with a z : 1.