Почему мы не можем загрузить файл большого размера из диалогового окна файла и отобразить данные файла на textArea в qml? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь просмотреть файл через 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...