в Label разрешена максимальная длина строки — BB10 родных приложений

спасибо за ваше внимание и любые предложения / помощь, которую вы можете предоставить:

Вот так 🙂

У меня есть следующий макет в 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 ++ я устанавливаю огромную строку QTring UTF-8 для этой метки:

/*
* 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.
Также я убедился, что Лейбл смог показать текст до 3000 символов.
Также я могу сказать это без каких-либо сомнений, что это не имеет ничего общего с ScrollView или контейнером.

Никакая документация по Label, ScrollView или Container не определяет никаких ограничений, кроме тех, где указано, что это может зависеть от устройства.

Я также попытался использовать TextArea, но без особой помощи он поднялся до ~ 4000 символов.

Итак, наконец, существует ли известное ограничение для символов Label или TextArea?, или если это зависит от устройства, то как я могу преодолеть эту проблему? Пожалуйста помоги.

0

Решение

Знать предел для TextArea Виджет можно найти в документации (Максимальная длина TextArea):

Максимальная длина по умолчанию — INT_MAX, то есть ограничение не установлено.
Хотя предела нет, фактический предел большой конечный
значение и зависит от устройства.

Хотя, нет такого свойства для Label Я думаю, что виджет имеет то же значение, что и все классы, унаследованные от AbstractTextControl использование QString для удержания отображаемого текста и типа, используемого для возврата длина QString является int

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

0

По вопросам рекламы [email protected]