私は QML ListView を持っています。デリゲートは、スレッドとQWidgets
.
しかし、ListView をスクロールするか、デリゲートをプログラム ウィンドウに展開すると、目に見えないデリゲートが破棄されます。
デリゲートを に保存するにはどうすればよいListModel
ですか?
私のコード例:
import Qt 4.7
Rectangle {
width: 320; height: 200; color: "white"
Text {
id: debugText
font.pixelSize: 24
color:"blue"
text: "count of created delegates: " + added.toString()
}
property int added: 0
Component {
id: delegate
Item {
id: wrapper
Component.onCompleted: added += 1
width: 180; height: 50
Column {
x: 5; y: 5
Text { text: '<b>Name:</b> ' + name }
Text { text: '<b>Number:</b> ' + number }
}
}
}
ListView {
width: parent.width; height: parent.height
model: contactModel
delegate: delegate
}
ListModel {
id: contactModel
ListElement {
name: "Bill Smith"
number: "555 3264"
}
ListElement {
name: "John Brown"
number: "555 8426"
}
ListElement {
name: "Sam Wise"
number: "555 0473"
}
ListElement {
name: "Bill Smith"
number: "555 3264"
}
ListElement {
name: "John Brown"
number: "555 8426"
}
ListElement {
name: "Sam Wise"
number: "555 0473"
}
}
}
ありがとう!私は問題を解決します!最初の方法 - Flickable オブジェクト、Column および Repeater を作成します。このソリューションは私に適しています。2番目の方法-メインビュー(SCADAのようなプログラム)の複数のグリッドの場合、各オブジェクトがQObjectListで、各オブジェクトが私のDataObjectであるQObjectListを使用します:)