Qt/QML-选择文本项中要显示的字符数
我只想在文本项中显示单词的前两个字符。 例如,我有一个单词列表(法语、英语、意大利语),我只想显示(FR、EN、IT) 如果我省略了文本,我总是会在结尾处得到三个点(…),我不希望这样 有什么想法吗Qt/QML-选择文本项中要显示的字符数,qt,qml,Qt,Qml,我只想在文本项中显示单词的前两个字符。 例如,我有一个单词列表(法语、英语、意大利语),我只想显示(FR、EN、IT) 如果我省略了文本,我总是会在结尾处得到三个点(…),我不希望这样 有什么想法吗 提前感谢您可以将剪辑设置为真,但是您需要使用宽度 所以我认为最好的选择是在JavaScript中实现一个小函数,只获取前两个字母 例如: main.qml import QtQuick 2.5 import QtQuick.Window 2.2 import "myscript.js" as MyF
提前感谢您可以将
剪辑
设置为真
,但是您需要使用宽度
所以我认为最好的选择是在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);
}
请记住,国家名称中的首字母和相应的ISO标准2或3字母国家代码是不同的。例如,安道尔的两个字母代码为AD.()--因此,如果您试图实现国家ISO标准国家编码,您只需根据需要列出具有属性名称、isoCode2等的对象列表,例如: 属性变量myArrayOfCountries:[
{ "name" : "Andorra", "isoCode2" : "AD" },
{ "name" : "United Arab Emirates", "isoCode2" : "AE" },
...
]
如果可以的话,我可能会尝试从一些web服务获取这些信息,因为创建和维护这样的列表可能会很痛苦
…也就是说,如果您只需要从QML Javascript中的字符串中获取前两个字母,我只需要
文本:myString.substring(0,2)
或者在你的情况下,我想:
文本:MyArrayOfString[someIndex]。子字符串(0,2)
请注意,对于对象列表方法,您将使用: 文本:myArrayOfCountries[someIndex][“isoCode2”]
当然。您不想在文本元素(法语、英语、意大利语)中显示三个单词的前两个字符,只想在文本元素中显示三个不同的单词(FR、EN、IT)。好吧,让他们看看。这听起来像是XYY问题。不幸的是,我的C++方法返回了完整的单词列表,我只想知道我是否只能显示两个字符。听起来像一个想法,我会给出一个试探,我不知道这个子串函数,它像魅力一样工作。谢谢!谢谢你!快乐编码!:)