QML ComboBox项目未显示正确的文本

时间:2018-11-23 16:31:44

标签: qt qml

组合框似乎对某些字符有问题,至少我检测到当我们转到项目列表时,“&”显示为“ _”。 我们该如何解决?

一个例子:

ComboBox {
    id: combobox
    textRole: "text"
    Layout.fillWidth: true

    model: ListModel {
        dynamicRoles: true
    }

    Component.onCompleted: {
        reload()
    }

    Connections {
        target: trans // this is a translator from a git project you are referring to
        onLanguageChanged: {
            combobox.reload()
        }
    }

    function reload() {
        var i = combobox.currentIndex
        combobox.model = [
                    {text: qsTr("apple & orange")}
                ]
        combobox.currentIndex = i
    }

enter image description here

这是在QT 5.11.2上

如果我转义文字 {text: qsTr("apple && orange")}

发生这种情况

enter image description here

1 个答案:

答案 0 :(得分:3)

Qt使用&符号为特定的UI元素指定助记键,因此该符号被使用。

只需使用&&即可。

对于显示文字错误,有一种简单的解决方法:

  ComboBox {
    model: ["a and b", " a && b"]
    displayText: currentText.replace("&&", "&")
  }