Вариант использования: я хотел бы показать большие файлы журнала (8k + строк), используя QML или хотя бы QML-совместимые компоненты. Такие функции, как многострочный выбор, копирование и подсветка синтаксиса, являются обязательными.
Проблема: Подход по умолчанию будет использовать TextArea внутри ScrollView, но проблема заключается в большом использовании памяти (на моем компьютере с несколькими выбранными строками : 2GB +) вызывает зависания (5 секунд +) и вылетает.
Пример кода:
import QtQuick 2.12
import QtQuick.Controls 2.5
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("TextEditTest")
ScrollView {
id: scrollView
anchors.fill: parent
TextArea {
id: textArea
text: " "
renderType: Text.NativeRendering
textFormat: Text.PlainText
placeholderText: "no text found"
readOnly: true
selectByMouse: true
}
}
}
(Просто вставьте текст (8k + строк) в "")
Вопрос : Возможно ли улучшить использование памяти TextArea + ScrollView? Или есть альтернатива?
Возможное решение ?: Все еще использовать TextEdit, но предоставляя собственную функцию прокрутки, которая загружает текст по требованию, предотвращая визуализацию всего текста сразу. Проблема в том, что мне придется написать свой собственный выбор и скопировать функции поверх существующих.