Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.5.5-1, 6.7.0 RC2
-
None
-
Windows 10 22H2, MSVC 2019 x64
Description
Code
import QtQuick import QtQuick.Controls.Basic import QtQuick.Layouts Window { id: root width: 640 height: 480 visible: true property list<int> numbers: [11, 22, 33] ColumnLayout { anchors.fill: parent Button { text: "Remove First Number" onClicked: { let num = root.numbers.shift() console.log("Removed", num) } } ListView { Layout.preferredWidth: 100 Layout.fillHeight: true model: root.numbers delegate: Label { required property int modelData text: modelData Component.onCompleted: console.log("Delegate created for value", modelData) Component.onDestruction: console.log("Delegate destroyed for value", modelData) } } } }
Outcomes
Program startup:
qml: Delegate created for value 11 qml: Delegate created for value 22 qml: Delegate created for value 33
1st click:
qml: Delegate destroyed for value 22 qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 11 qml: Delegate created for value 22 qml: Delegate created for value 22 qml: Delegate created for value 33 qml: Delegate destroyed for value 22 qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 22 qml: Delegate created for value 22 qml: Delegate created for value 33 qml: Delegate created for value 33 qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 22 qml: Delegate created for value 22 qml: Delegate created for value 33 qml: Delegate created for value 0 qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 0 qml: Delegate destroyed for value 22 qml: Delegate created for value 22 qml: Delegate created for value 33 qml: Removed 11
2nd click:
qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 22 qml: Delegate created for value 33 qml: Delegate created for value 33 qml: Delegate destroyed for value 33 qml: Delegate destroyed for value 33 qml: Delegate created for value 33 qml: Delegate created for value 0 qml: Delegate destroyed for value 0 qml: Delegate destroyed for value 33 qml: Delegate created for value 33 qml: Removed 22
3rd click:
qml: Delegate destroyed for value 33 qml: Delegate created for value 0 qml: Delegate destroyed for value 0 qml: Removed 33
Attachments
Issue Links
- resulted from
-
QTBUG-123882 QML list of length N emits (N+1) value change signals when shift() is called
- Open