我只需要类似于 Fstream 的东西来读取 QML 中的文件 IO。为什么没有文件IO?
问问题
23350 次
6 回答
14
如果您的文件是纯文本,您可以使用 XMLHttpRequest。例如:
var xhr = new XMLHttpRequest;
xhr.open("GET", "mydir/myfile.txt");
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
var response = xhr.responseText;
// use file contents as required
}
};
xhr.send();
于 2011-10-16T13:30:34.370 回答
5
我知道这是个老问题,但您可能仍然对答案感兴趣。这里是:在 qml (Qt Quick) 中从 .txt 或 .csv 文件中读取一行
简而言之,您在这里解释了如何在 QML 中读取文件:http: //www.developer.nokia.com/Community/Wiki/Reading_and_writing_files_in_QML
您只需要使用 C++ 扩展 QML。
于 2012-12-16T13:06:42.613 回答
4
QML 没有内置的文件 I/O。但是 - 从你的帖子的语气来看 - 你已经知道了。
如何在 QML 中读取 FILE 内容?
您可以使用 C++ 扩展 QML 的功能。
Qt 参考文档中的QML 编程入门教程向您展示了如何构建文本编辑器。这包括使用 C++ 的文件 I/O。
为什么没有文件 I/O?
因为 QML 是基于 JavaScript 的,而 JavaScript 也没有内置的文件 I/O。
QML 被设计为一种(简单的)构建用户界面的方法。您需要一个实际的程序来完成其余的工作。
于 2011-10-14T22:24:44.150 回答
0
function readConfigFile() {
var xhr = new XMLHttpRequest;
var configaddress = "File:///" + root + "/webconfig.txt" //root = "c:/folder/file.ini";
console.log(configaddress);
xhr.open("GET", configaddress);
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
var response = xhr.responseText;
var js = JSON.parse(response)
if (js.address != "") {
service_address = js.address
}
// use file contents as required
}
};
xhr.send();
}
于 2018-09-25T12:36:04.543 回答