2013-07-29 36 views
6

Có thể viết front-end của ứng dụng trong QML và back-end trong C++ và biên dịch nó bằng cách nào đó để tôi có thể triển khai nó tới một máy chủ web như Apache hoặc JBoss để có thể truy cập từ bên trong trình duyệt web?Làm thế nào để chuyển Qt qml sang máy chủ web với C++ backend

Nếu có, bạn có ví dụ nào về cách thực hiện việc này không?

Cảm ơn bạn rất nhiều vì câu trả lời của bạn :)

Tôi đang cố gắng tìm câu trả lời cho câu hỏi của mình trên Internet nhưng tôi đã không thành công.

Trả lời

4

QmlWeb là thư viện JavaScript có thể phân tích cú pháp mã QML và tạo trang web bằng cách sử dụng các phần tử HTML/DOM thông thường và vị trí tuyệt đối trong CSS, dịch thuộc tính QML thành thuộc tính CSS.

QmlWeb là một dự án nhỏ được bắt đầu chủ yếu bởi Lauri Paimen, người đã phát triển nó trong một vài năm và hiện là dự án KDE do Anton Kreuzkamp duy trì.

QmlWeb tất nhiên chưa hỗ trợ mọi việc QML thực hiện QML, nhưng nó đã hỗ trợ một tập hợp con khá khả dụng của QML. Nó hỗ trợ gần như tất cả cú pháp QML cơ bản nhất. Hơn nữa nó có hỗ trợ cho các yếu tố đầu vào HTML (Button, TextInput, TextArea hiện đang được hỗ trợ, nhiều hơn tới).

Vâng, QmlWeb chưa hoàn tất. Tôi hy vọng Digia giúp với dự án này để làm cho nó sẵn sàng với các tính năng trưởng thành.

0

Không. Bạn không thể biên dịch QML và dưới mọi hình thức, nó không thể được triển khai trên máy chủ ứng dụng Java như JBoss. Qml là đúng cho việc tạo các ứng dụng để chạy trên một máy tính cục bộ. Có vẻ như bạn muốn xây dựng một Ứng dụng web trong HTML với một số loại chương trình phụ trợ như .Net.

+0

Ý tưởng của tôi được xây dựng trên thực tế là có khả năng tương tác giữa qt và javascript vì vậy tôi nghĩ rằng có thể sử dụng nó bằng cách nào đó như gwt. Tgere cũng là javacode được biên dịch thành javascript và javascript này giao tiếp với phần phụ trợ java. Nó không phải là máy chủ ứng dụng java :) – Reshi

3

javascript hiện đang nằm trên đỉnh của v8 nhưng phục vụ mục đích thể hiện các ràng buộc phức tạp và một số (tốt nhất là nhỏ) logic khách hàng. Nhưng động cơ có thể thay đổi (http://blog.qt.digia.com/blog/2013/04/15/evolution-of-the-qml-engine-part-1/).

Giống như trong trình duyệt, đồ họa thực tế là loại trực giao với javascript chỉ có thể tương tác (hoặc khởi tạo) với các đối tượng đồ họa hiện có. Trong trình duyệt, đồ họa được mô tả bằng html/css/svg/dom và được giải thích bằng công cụ web được viết bằng C++. Trong QtQuick, đồ họa được viết bằng Qml và được giải thích bởi động cơ qml (scengraph) được viết bằng C++.

Hai ngăn xếp hoàn toàn khác nhau.

Ngoại lệ làm bằng canvas Html và canvas Qml (gần như chia sẻ cùng một api). Nhưng đó là những đồ họa làm việc ở chế độ ngay lập tức (trái ngược với một cảnh quay SVG hoặc Qml, làm việc trong chế độ Retained mode).


đó đang được nói ...

Có 3 nỗ lực để cổng QML lên web:

  • Một cổng Qt để Google NaCl (không bao giờ nghe nói về nó từ một thời gian dài, nhiều khả năng đã chết)
  • Cổng Qt qua Emscripten/asm.js (dự án tuyệt vời, nhưng không khả thi để sản xuất và tôi không nghĩ rằng QtQuick thậm chí còn được hỗ trợ ... có thể yêu cầu nỗ lực rất lớn để được duy trì tích cực)
  • QmlWeb (Javascript apis để dịch các tệp Qml và giải thích những tệp đó ở trên cùng của ngăn xếp HTML5). Công việc đang được tiến hành và chỉ một tập hợp con của toàn bộ hệ sinh thái QtQuick có thể được hỗ trợ trong thời gian dài. Nhưng vẫn là một dự án thực sự thú vị và có lẽ hứa hẹn nhất trong cả ba dự án. Ít nhất, nó là người trẻ nhất, và nó có thể nhận được một số lực kéo từ cộng đồng KDE. http://akreuzkamp.de/2013/07/10/webapps-written-in-qml-not-far-from-reality-anymore/

Bạn cũng có thể quan tâm công nghệ scenegraphs khác ngồi trên đỉnh của ngăn xếp web (amin, cake.js, rapahel.js ...).

Cuối cùng nhưng không kém phần quan trọng, bạn có thể quan tâm đến Wt (http://www.webtoolkit.eu/wt).

Các vấn đề liên quan