我不知道如何動態修改模型中系結的資料。這是 QT 中的官方示例檔案。我為其添加了一個按鈕并嘗試通過物件修改名稱的資料,但失敗了。
ApplicationWindow {
id: window
width: 300
height: 300
visible: true
//I added this button
Button {
x:179
y:235
text: "Button"
z: 1
onClicked: {
//There's no use here!
t1.model.rows[0].name = "cat2"
console.log(t1)
}
}
// Button End
TableView {
id: t1
anchors.fill: parent
columnSpacing: 1
rowSpacing: 1
clip: true
model: TableModel {
TableModelColumn {
display: "name"
}
TableModelColumn {
display: "color"
}
rows: [{
"name": "cat",
"color": "black"
}, {
"name": "dog",
"color": "brown"
}, {
"name": "bird",
"color": "white"
}]
}
delegate: Rectangle {
implicitWidth: 100
implicitHeight: 50
border.width: 1
Text {
text: display
anchors.centerIn: parent
}
}
}
}
問題是當按鈕被觸發時,修改的行值無法生效。
我試圖查看幫助檔案或在搜索引擎中搜索答案,但我得到的資訊太少,以至于我不得不在這里向有經驗的程式員尋求幫助。
uj5u.com熱心網友回復:
您必須使用以下setData
方法:
onClicked: {
var ix = t1.model.index(0, 0);
if (t1.model.setData(ix, "display", "cat2"))
console.log("success");
else
console.log("failed");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/496970.html