我有一个QAbstractListModel,当我的数据发生变化时,我会发出dataChanged(…),我的观看内容已正确更新。
但只有内容,而不是颜色:如果颜色取决于我的模型项的状态,那么它不会刷新。
以下是我在QML中itemDelegate
的{{1}}的简化:
TableView
TableView {
model: myModel
itemDelegate: Text {
text: debug("value", styleData.value)
color: debug("color", myModel.getMyBooleanState(styleData.row) ? 'blue' : 'red')
}
// …
}
只需在调用函数时记录:
debug()
function debug(tag, value) {
console.log(tag + ": " + value)
return value
}
是我模型的成员函数:
getMyBooleanState()
开始时,正确初始化文本和颜色。但每次我发出Q_INVOKABLE bool getMyBooleanState(int rowIndex) const;
时,只更新值,而不是颜色。
如何更新颜色?