ComboBox QML在选择后不显示项目文本

时间:2017-09-10 17:23:00

标签: qt combobox qml qtquickcontrols2

我有一个QML ComboBox,其模型定义为C ++ QList< QObject *>。 当我打开下拉列表时,我可以看到C ++模型中定义的所有项目,但在选择之后,未显示所选项目。 因此,项目仅在下拉元素中可见。 qml文件的相关部分是:

ComboBox {
    id: placesCombo
    anchors.top: parent.top
    width: parent.width
    model: myModel
    delegate: ItemDelegate {
        width: placesCombo.width
        contentItem: Text {
            id: placesComboItem
            text: displayLabel
            elide: Text.ElideRight
            verticalAlignment: Text.AlignVCenter
        }
    }
}

如何在封闭的组合框中显示先前在下拉元素中选择的项目文本?

由于

1 个答案:

答案 0 :(得分:3)

根据docs

  

textRole:string

     

此属性包含用于的模型角色   填充组合框。

     

当模型具有多个角色时,可以设置textRole来确定   应该显示哪个角色。

您必须通过textRole指示要显示的模型的角色。

ComboBox {
    id: placesCombo
    textRole: "displayLabel"
    ...
}