我正在尝试自定义QML 2.14组合框
我确实关注了下面的链接,但我无法自定义组合框->弹出菜单->列表视图->quot;"委托">
https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-combobox
我希望在组合框弹出菜单中显示的列表项具有不同的文本颜色。
ComboBox {
id: myComboBox
model: ["First", "Second", "Third"]
popup: Popup {
y: myComboBox.height - 1
width: parent.width
implicitHeight: contentItem.implicitHeight
contentItem: ListView {
clip: true
anchors.fill: parent
model: myComboBox.popup.visible ? myComboBox.delegateModel : null
ScrollIndicator.vertical: ScrollIndicator {}
delegate: Text {
width: parent.width
height: 30
text: "Test" // How to access flat model, modelData is null and model.get(index) is not allowed in .ui.qml
color: "#ffffff"
anchors.horizontalCenter: parent.horizontalCenter
anchors.left: parent.left
}
highlight: Rectangle { color: "yellow" }
}
}
}
但我总是在弹出的组合框中看到一些带有黑色文本的默认列表
也无法将高亮显示应用于弹出窗口中的选定行。
组合框的模型是DelegateModel。这意味着代理已附加到模型。因此,尝试设置ListView的委托不会有任何效果。但是组合框有自己的delegate
属性,您可以进行设置。
ComboBox {
delegate: Text {
width: parent.width
height: 30
text: modelData
color: "#ffffff"
anchors.horizontalCenter: parent.horizontalCenter
}
}