0

感谢您的关注以及您可以提供的任何建议/帮助:

开始了 :)

我在 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 无关。

没有标签、滚动视图或容器文档定义任何类型的限制,除了它说它可以依赖于设备的地方。

我也尝试过使用 TextArea,但没有太多帮助,它达到了约 4000 个字符。

那么,最后,Label 或 TextArea 是否存在已知的字符限制,或者如果它是设备相关的东西,那么我该如何克服这个问题?请帮忙。

4

2 回答 2

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

于 2013-08-06T08:05:37.180 回答
0

TextArea可以在文档中找到小部件的了解限制( TextArea 最大长度):

默认的 maximumLength 是 INT_MAX,这意味着没有设置限制。虽然没有设置限制,但实际限制是一个很大的有限值,并且取决于设备。

虽然,对于特定的小部件没有这样的属性,但我猜它与从用于保存要显示的文本Label的所有继承的类具有相同的值,并且用于返回长度的类型AbstractTextControlQStringQStringint

于 2013-08-07T06:51:15.943 回答