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)
Forum Updated to NodeBB v4.3 + New Features

ListView.OverlayHeader Bug (Freezing UI)

Scheduled Pinned Locked Moved Solved QML and Qt Quick
5 Posts 2 Posters 1.6k 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