我想只在文本项中显示单词的两个第一个字符。 例如,我有一个单词列表(法语,英语,意大利语),我只想显示(FR,EN,IT)。
如果我忽略了文字,我最后会得到三个点(...),我不希望这样。
有什么想法吗?
提前致谢
答案 0 :(得分:1)
您可以将clip
设置为true
,但之后您需要使用width
。
所以我认为最好的选择是在JavaScript中实现一个小函数,只获得前两个字母。
示例:
<强> main.qml 强>
import QtQuick 2.5
import QtQuick.Window 2.2
import "myscript.js" as MyFunctions
Window {
visible: true
// You need to play with the width
Text {
width: 13
text: "FRENCH"
clip: true
}
// OK. width is not necessary
Text {
y: 60
text: MyFunctions.substring("FRENCH")
}
// We don't want this behaviour
Text {
y: 30
width: 25
text: "FRENCH"
elide: Text.ElideRight
}
}
<强> myscript.js 强>
function substring(str) {
return str.substring(0, 2);
}
答案 1 :(得分:0)
请记住,国家/地区名称中的第一个字母以及相应的ISO标准2或3个字母的国家/地区代码是不同的。例如,安道尔的双字母代码是AD。 (https://en.wikipedia.org/wiki/ISO_3166-2) - 因此,如果您尝试实现国家ISO标准国家/地区编码,则应根据需要简单地创建具有属性名称,isoCode2等的对象列表,例如:
property var myArrayOfCountries:[
{ "name" : "Andorra", "isoCode2" : "AD" }, { "name" : "United Arab Emirates", "isoCode2" : "AE" }, ...
我可能会尝试从某些Web服务中获取这些内容(如果可用),因为创建和维护此类列表可能会很麻烦。
...那就是说,如果你只是需要从QML Javascript中的字符串中获取前两个字母,我只需要使用
text:myString.substring(0,2)
或者在你的情况下,我认为:
text:myArrayOfStrings [someIndex] .substring(0,2)
Ps。,您将使用对象列表方法:
text:myArrayOfCountries [someIndex] [&#34; isoCode2&#34;]
当然。