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

Posted

技术标签:

【中文标题】选择后 ComboBox QML 不显示项目文本【英文标题】:ComboBox QML does not show item text after selection 【发布时间】:2017-09-10 17:22:59 【问题描述】:

我有一个 QML ComboBox,其模型定义为 C++ QList 。 当我打开下拉列表时,我可以看到 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】:

根据docs:

textRole : 字符串

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

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

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

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

【讨论】:

以上是关于选择后 ComboBox QML 不显示项目文本的主要内容,如果未能解决你的问题,请参考以下文章

解决QML开发中ComboBox中一个已选择项没有清除的问题

为啥单击编辑文本后不显示qml虚拟键盘,而我在.pro和main.cpp中调用插件

如何在 QML 的自定义 ComboBox 中突出显示所选项目?

WPF ComboBox 绑定到不显示所选项目文本的用户控件集合

QML 可以多选ComboBox的实现

WPF ComboBox 最初以错误的大小显示第一个项目