问题描述
我在 QML 中创建了一个简单的 TreeView,具有多个嵌套级别。我还创建了一个“itemDelegate”和一个“rowDelegate”;两者都在红色/黑色绑定到各自的 isSelected 之间切换背景颜色。
当我单击一个项目时,ROW 颜色会发生变化,但该项目不会。我确认每个项目的 itemFlag 包括 ItemsIsSelectable 和 ItemIsEnabled(默认)。
我的 itemDelegate 包含:
Rectangle {
color: styleData.isSelected ? "red" : "black"
ItemSelectionModel {
id: treeViewSelectionModel
objectName: "treeViewSelectionModel"
model: treemodel
onCurrentChanged:{console.log("Selection - current changed from ",prevIoUs," to ",current)}
}
正确打印出新的/以前的选择。所以看起来该项目正在被选中,但没有改变颜色。有人能解释一下原因吗?
解决方法
QQC1 不一致,所以 item 使用 styleData.selected 而 row 使用 styleData.isSelected
(如马克西姆所说)