Я пытаюсь просмотреть файл через FileDialog и отобразить содержимое файла в TextArea из qml, интегрируемого с python. Он работает правильно с файлом небольшого размера, но TextArea, а также приложение застревает, когда мы просматриваем файл большого размера. Итак, как загрузить файл большого размера из FileDialog и обновить текст TextArea с данными файла в qml?
В приведенном ниже коде read () - это слот pyqt, а jsonstring - pyqtproperty:
FileIO {
id: fileIoObject
}
FileDialog {
id: fileDialog
visible: visible
onAccepted: {
setOption(DontUseNativeDialogs, true)
console.log("Accepted: " + fileUrl)
fileTextArea.text = fileDialog.fileUrl
fileIoObject.source = fileUrl
fileIoObject.read()
}
}
TextArea {
id: jsonTextArea
text: fileIoObject.jsonString
}
.py
@pyqtSlot()
def read(self):
fileName = self.name.replace('file://', '')
if (QFile.exists(fileName)):
file = QFile(fileName)
if (file.open(QFile.ReadOnly)):
data = file.readAll()
codec = QTextCodec.codecForUtfText(data)
self.setJsonString(codec.toUnicode(data))
self.jsonStringChanged.emit()
self.prevJsonStr = self.getJsonString()
Я ожидаю решения, как загрузить файл большого размера из FileDialog и обновить текст TextArea с данными файла в qml.