Tôi chỉ cần một cái gì đó tương tự như Fstream để đọc tập tin IO trong QML. Tại sao không có tệp IO?Làm cách nào để đọc trong nội dung FILE trong QML?
Trả lời
QML không có tệp I/O được tích hợp sẵn. Nhưng - đánh giá từ giai điệu của bài đăng của bạn - bạn đã biết điều đó.
Làm thế nào để đọc nội dung tập tin trong QML?
Bạn có thể mở rộng chức năng QML bằng cách sử dụng C++.
Các Getting Started Programming with QML hướng dẫn từ các tài liệu tham khảo Qt cho bạn thấy làm thế nào để xây dựng một trình soạn thảo văn bản. Điều này bao gồm tệp I/O sử dụng C++.
Tại sao không có tập tin I/O?
Vì QML được dựa trên JavaScript, và JavaScript không có built-in tập tin I/O trong hai.
QML được thiết kế như một cách dễ dàng để xây dựng giao diện người dùng. Bạn cần một chương trình thực tế để làm phần còn lại.
Nếu tệp của bạn là văn bản thuần túy, bạn có thể sử dụng XMLHttpRequest. Ví dụ:
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();
Bạn muốn đọc tệp gì? ... nếu dữ liệu đơn giản của nó .. thì có thể bạn nên sử dụng API lưu trữ ngoại tuyến QML. Look for that section here.
Nếu bạn muốn triển khai một db với ứng dụng của bạn đọc this conversation.
Nếu bạn thực sự muốn đọc tệp, hãy tìm hiểu C++ và hiển thị mã của bạn cho QML. Điều đó, sau đó, nằm ngoài phạm vi câu trả lời của tôi.
Tôi biết đây là câu hỏi cũ nhưng bạn có thể vẫn quan tâm đến câu trả lời. Ở đây là: Reading a line from a .txt or .csv file in qml (Qt Quick)
Nói tóm lại, bạn có ở đây giải thích làm thế nào để đọc các file trong QML: http://www.developer.nokia.com/Community/Wiki/Reading_and_writing_files_in_QML
Tất cả bạn cần là mở rộng QML với C++.
Điều này cũng hoạt động đối với các định dạng văn bản thuần khác, ví dụ: json – OlliM
đây là câu trả lời không tốt và phải bao gồm mã mẫu thay vì liên kết (có khả năng đã chết/chết). – khaverim