我使用rowDelegate
来实现变量行高,如下所示。但是,它不会使用选定/备用行的默认背景颜色。如何保留我不想覆盖的所有默认值?
TableView {
id: messagesTable
TableViewColumn {
role: "severity"
title: ""
width: 20
delegate: Image {
anchors.centerIn: parent
fillMode: Image.Pad
source: iconSources[styleData.value.toLowerCase()]
}
}
TableViewColumn {
role: "message"
title: "Message"
width: 300
}
TableViewColumn {
role: "source"
title: "File"
width: 150
}
TableViewColumn {
role: "startLine"
title: "Line"
width: 40
}
TableViewColumn {
role: "startColumn"
title: "Column"
width: 50
}
rowDelegate: Rectangle {
width: childrenRect.width
height: (messagesModel.get(styleData.row).lineCount || 1) * 20
}
model: messagesModel
}
答案 0 :(得分:1)
你不能。
Qt Quick Controls样式的一般规则是:一旦覆盖委托,就从头开始。例如,如果样式提供了DefaultTableViewRowDelegate
类型,则可以构造该实例,然后它可以工作,但由于默认委托是内联编写的,因此您无法访问它们。