2014-09-09 23 views
5

Tôi muốn sử dụng Blink (hoặc Webkit, Gecko, KHTML, ... bất kỳ công cụ bố cục tương tự nào; Tôi không kén chọn) làm công cụ bố cục để kết xuất dữ liệu có cấu trúc từ chương trình C++. Và tôi muốn có thể liên kết các hàm với các sự kiện DOM để phản hồi tương tác của người dùng.Sử dụng Blink làm công cụ bố cục giao diện người dùng - bắt đầu từ đâu?

Nói cách khác, tôi không muốn sử dụng giao thức HTTP, Javascript hoặc thậm chí URI cho tài nguyên hình ảnh (tôi đang lập kế hoạch cho hình ảnh đường ống và nội dung video từ cơ sở dữ liệu vào DOM một cách trực tiếp, giả sử có thể) . Tôi chỉ muốn một công cụ bố trí cho phép tôi lắp ráp cây DOM từ đầu thông qua các cuộc gọi hàm C++ và cho phép tôi liên kết các con trỏ hàm với các sự kiện tương tác của người dùng.

Tôi đang gặp nhiều khó khăn khi tìm thông tin về cách thực hiện việc này. Rất nhiều thông tin trên mạng dường như tập trung vào các công cụ duyệt web cấp cao hơn, như nhúng một khung trình duyệt web đầy đủ tính năng trong một ứng dụng. Tôi tự hỏi liệu có một loại 'tập hợp con tối thiểu' của một công cụ trình duyệt mà tôi có thể sử dụng hay không và cách nào có thể là cách nhanh nhất/dễ nhất để bắt đầu.

+0

Bạn đã tìm thấy giải pháp chưa? Bất cứ thông tin nào? Tôi cũng đang tìm kiếm một thứ tương tự: một thứ gì đó giống như một công cụ dựng hình web, nhưng nhu cầu của tôi hoàn toàn không liên quan đến web (trong trường hợp của tôi, thậm chí không phải DOM, bất kỳ mô hình nào khác sẽ ổn). – AkiRoss

Trả lời

1

Với Qt WebEngine (trong đó sử dụng chớp) bạn sẽ có được một trình duyệt web mà bạn có thể cung cấp dữ liệu vào từ các ứng dụng có chứa (mô tả tại: http://doc.qt.io/qt-5/qtwebkit-bridge.html). Bạn có thể cung cấp cho nó tài liệu như một cá thể QWebEnginePage được tạo trước, và bạn có thể tạo các đối tượng từ chương trình có sẵn cho JavaScript đang chạy trong trang. Do đó, có thể hiển thị một trang web động mà không bao giờ truy cập các tệp hoặc URI.

Để sử dụng cầu Qt-WebKit này, bạn cần cung cấp dữ liệu bạn muốn truy cập dưới dạng lớp có nguồn gốc QObject và bạn sẽ cần chạy công cụ qmake trong quá trình tạo vì nó dựa trên siêu Qt trình biên dịch đối tượng, vì vậy bạn có được một chút hút vào thế giới của Qt.

Ngoài ra, tôi không chắc bạn đang làm việc trên dự án nào nhưng tôi nên đề cập rằng Qt Quick cũng đáng xem - nó tương tự (ám chỉ một ứng dụng đồ họa sử dụng trình duyệt web có thể chứa JavaScript) , nhưng thay vì HTML, nó sử dụng một ngôn ngữ khai báo giống như JSON được gọi là QML. Bạn có thể xem tổng quan về các khả năng của nó tại đây: http://doc.qt.io/qt-5/qmlapplications.html.

1

Bạn có thể thử các ví dụ về Widget WebKit here.

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