感谢您的关注以及您提供的任何建议/帮助:
我们走了:))
我在QML中有以下布局:
Page {
ScrollView {
scrollViewProperties {
scrollMode: ScrollMode.Vertical
}
Container {
verticalAlignment: VerticalAlignment.Center
horizontalAlignment: HorizontalAlignment.Center
Label {
id: label1
objectName: qsTr("label1")
textStyle.base: SystemDefaults.TextStyles.BigText
verticalAlignment: VerticalAlignment.Center
horizontalAlignment: HorizontalAlignment.Center
multiline: true
textStyle.textAlign: TextAlign.Center
}
}
}
}
在我的c ++代码中,我为这个标签设置了一个巨大的UTF-8 QString:
/*
* getData() - a helper function to take care of pulling everything from
* db and then packing it all and returning to caller
*/
QString text = getData();
label1->setText(text);
在大多数情况下,一切正常。但是在某些情况下,当text.length()超过某个限制时,某些东西会修剪掉字符串的结尾部分。
从调试中我可以看到text.length在其中一个案例中是~55000。 我还验证了Label能够显示最多3000个字符的文字。 我也可以毫无疑问地说这与ScrollView或Container无关。
No Label,ScrollView或Container文档定义了除它可能取决于设备之外的任何限制。
我也尝试使用TextArea但没有太多帮助,它最多可达到4000个字符。
所以,最后, 是否存在Label或TextArea的已知字符限制 ,或者如果它是设备相关的东西,那么我该如何克服这个问题呢?请帮忙。
答案 0 :(得分:0)
我使用此代码获得了35716的限制:
Label {
onCreationCompleted: {
var texte = "0 ";
var count = 0;
for (var i = 0; i < 12000; i ++) {
count += count.toString().length + 1;
texte = texte + " " + count;
}
text = texte;
}
multiline: true
text: ""
}
我们应该将这个添加到BlackBerry bugTracker的票证中:https://www.blackberry.com/jira/secure/Dashboard.jspa
答案 1 :(得分:0)
可以在文档(TextArea maximum length)中找到TextArea
小部件的限制:
默认maximumLength是INT_MAX,表示没有设置限制。 虽然没有限制设定,但实际限制是一个很大的限制 价值取决于设备。
虽然,对于特定的Label
小部件没有这样的属性,我想它与从AbstractTextControl
继承的所有类都使用QString
来保持文本显示的值和用于返回length of QString
is int