[Development] ListView + TextEdit tricky behavior

Mitch Curtis mitch.curtis at digia.com
Tue Sep 30 15:35:43 CEST 2014


On 30/09/14 14:55, Matías Néstor Ares wrote:
> Hi everyone!
> I'm developing an app with Qt, and I'm having some issues.
> I don't get a proper answer from the forums yet.
> So I ask it here, sorry if it is not the correct place.
>
> The problem description is on this post: 
> http://qt-project.org/forums/viewthread/47948/
> And a video of the symptom here: 
> https://www.youtube.com/watch?v=1sHKnNZLzhs
>
> Thanks In Advance
>
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

A hacky solution is below. It's just to point out that the state (text 
input) should be stored outside the delegates, as people are mentioning 
- in this case, it's stored in textArray.

import QtQuick 2.2
import QtQuick.Controls 1.2

ApplicationWindow {
     id: applicationWindow1
     visible: true
     width: 200
     height: 200
     title: qsTr("TextEdit on ListView Test")


     property var textArray: {
         var a = [];
         for (var i = 0; i < listView1.count; ++i) {
             a[i] = "";
         }
         a;
     }

     ListView {
         id: listView1
         x: 286
         width: 110
         boundsBehavior: Flickable.StopAtBounds
         anchors.horizontalCenter: parent.horizontalCenter
         anchors.bottomMargin: 0
         anchors.topMargin: 0
         anchors.bottom: parent.bottom
         anchors.top: parent.top
         clip: true

         model: ListModel {
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }

             ListElement {
                 name: "Red"
                 colorCode: "red"
                 text: ""
             }

             ListElement {
                 name: "Blue"
                 colorCode: "blue"
                 text: ""
             }

             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }

             ListElement {
                 name: "Red"
                 colorCode: "red"
                 text: ""
             }

             ListElement {
                 name: "Blue"
                 colorCode: "blue"
                 text: ""
             }

             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }

             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }
             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }
             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }
             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }
             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }
             ListElement {
                 name: "Green"
                 colorCode: "green"
                 text: ""
             }
             ListElement {
                 name: "Grey"
                 colorCode: "grey"
                 text: ""
             }
         }

         delegate: Item {
             width: 100
             height: 40
             Rectangle {
                 width: 100
                 height: 40
                 color: colorCode
                 TextEdit {
                     id: textEdit
                     font.pointSize: 23
                     anchors.fill: parent
                     text: textArray[index]
                     onTextChanged: textArray[index] = textEdit.text
                     font.bold: true
                     anchors.verticalCenter: parent.verticalCenter
                 }
             }
         }
     }
}


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140930/c15861ec/attachment.html>


More information about the Development mailing list