我试图通过FileDialog浏览一个文件,并将文件的内容显示到qml的TextArea中,并与python集成。它适用于小文件,但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的文本。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐