Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. ListView.OverlayHeader Bug (Freezing UI)

ListView.OverlayHeader Bug (Freezing UI)

Scheduled Pinned Locked Moved Solved QML and Qt Quick
5 Posts 2 Posters 2.0k Views 1 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.
  • E Offline
    E Offline
    Erakis
    wrote on last edited by Erakis
    #1

    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,

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      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.

      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
      • E Offline
        E Offline
        Erakis
        wrote on last edited by
        #3

        Thank you SGaist.

        I created an account and create the issue : https://bugreports.qt.io/browse/QTBUG-50105

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          Thanks for sharing the link !

          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
          • E Offline
            E Offline
            Erakis
            wrote on last edited by
            #5

            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.

            Ref https://bugreports.qt.io/browse/QTBUG-50105

            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