python - 为什么我们不能从文件对话框加载大尺寸文件并在 qml 中的 textArea 上显示文件数据?
问题描述
我正在尝试通过 FileDialog 浏览文件并将文件内容显示到与 python 集成的 qml 的 TextArea 中。它适用于小文件,但当我们浏览大文件时,TextArea 和应用程序会卡住。那么,如何从 FileDialog 加载大尺寸文件并使用 qml 中的文件数据更新 TextArea 的文本?
在下面的代码中,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 加载大尺寸文件并使用 qml 中的文件数据更新 TextArea 的文本。
解决方案
推荐阅读
- nlp - DialogFlow 上的 Botium K-fold 交叉验证引发前置条件错误
- python - 使用 LDAP 和 python cx_Oracle 连接到数据库
- c# - 如何在 C# Azure 函数中获取队列消息的插入时间
- javascript - .php 文件中的 Javascript 的 Visual Studio 代码片段
- python - Python多处理:有效地只保存最好的运行
- apache-kafka - kafkaRDD next() 慢
- python - Python 中的 IMDB 网页抓取
- python - Django 查询所有记录并注释给定日期和布尔状态之间的天数,直到日期布尔值更改
- html - 如何使右侧的 col-md-3 在 html bootstrap 4 中对齐
- javascript - 是否可以返回带有对象属性名称的数组?它被连线要求打印没有''的字符串