Я использую команду rowDelegate
для реализации переменных высот строк следующим образом. Однако он не использует цвета фона по умолчанию для выбранных/альтернативных строк. Как сохранить все значения по умолчанию, которые я не пытаюсь переопределить?Как переопределить некоторые свойства TableView.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
}
Ну, это большой позор. Вы знаете, где я могу получить доступ к цветам по умолчанию? – Andy
Я вижу 'QStyledItemDelegate' ... ничего подобного для делегатов строк? – Andy
Существует [SystemPalette] (http://doc.qt.io/qt-5/qml-qtquick-systempalette.html), но я не уверен, что это даст вам нужные цвета. Стиль рабочего стола использует стиль Qt Widgets, как вы могли заметить, но я уверен, что вам придется использовать частный API, если вы хотите его использовать (для 'QPlatformTheme' и т. Д.). – Mitch