спасибо за ваше внимание и любые предложения / помощь, которую вы можете предоставить:
Вот так 🙂
У меня есть следующий макет в 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?, или если это зависит от устройства, то как я могу преодолеть эту проблему? Пожалуйста помоги.
Знать предел для TextArea
Виджет можно найти в документации (Максимальная длина TextArea):
Максимальная длина по умолчанию — INT_MAX, то есть ограничение не установлено.
Хотя предела нет, фактический предел большой конечный
значение и зависит от устройства.
Хотя, нет такого свойства для Label
Я думаю, что виджет имеет то же значение, что и все классы, унаследованные от AbstractTextControl
использование QString
для удержания отображаемого текста и типа, используемого для возврата длина QString
является int
Я получил ограничение 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