组合框似乎对某些字符有问题,至少我检测到当我们转到项目列表时,“&”显示为“ _”。 我们该如何解决?
一个例子:
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
}
这是在QT 5.11.2上
如果我转义文字
{text: qsTr("apple && orange")}
发生这种情况
答案 0 :(得分:3)
Qt使用&
符号为特定的UI元素指定助记键,因此该符号被使用。
只需使用&&
即可。
对于显示文字错误,有一种简单的解决方法:
ComboBox {
model: ["a and b", " a && b"]
displayText: currentText.replace("&&", "&")
}