2013-07-07 107 views
48

Có thể phát triển chương trình C++ khi sử dụng HTML và CSS cho giao diện người dùng không? Tôi biết về lập trình với Javascript bằng cách sử dụng một container Webkit, nhưng tôi thực sự quan tâm đến phát triển C++.Cách tạo ứng dụng C++ gốc bằng giao diện người dùng HTML/CSS?

Tôi cảm thấy yêu C# WPF khi tôi phát triển dưới Windows, nhưng bây giờ tôi chuyển sang Linux và tôi không tìm thấy một công cụ tốt để sử dụng đánh dấu cho giao diện. Đối với điều này, tôi muốn kết hợp HTML và CSS, rất nhẹ và dễ sử dụng, với mã C++, với một cái gì đó giống như WPF.

Ồ, một điều nữa: Tôi đang tìm kiếm sự phát triển trên máy tính để bàn chứ không phải web.

Trả lời

26

Có, điều đó là có thể. Những gì bạn muốn là một khung công tác web C++. Bạn có thể bắt đầu bằng cách xem CppCMS —một khung phát triển web hiệu suất cao miễn phí (không phải CMS) nhằm phát triển ứng dụng web nhanh.

Chỉnh sửa: Sau khi câu hỏi đã được làm rõ, tôi nghĩ Awesomium sẽ phù hợp với nhu cầu của bạn.

Bạn có thể đạt được chức năng tương tự bằng cách nhúng WebKit (hoặc Gecko) nhưng theo tôi biết đó chính xác là những gì Awesomium thực hiện sau hậu trường.

Cách khác là librocket —một gói phần mềm trung gian giao diện C++ được thiết kế cho các ứng dụng trò chơi. Như bạn có thể đoán từ mô tả nó phù hợp cho các trò chơi hoặc các ứng dụng thời gian thực.

+2

Nhưng điều này có thể biên dịch cho tệp thi hành không? Tôi đang tìm kiếm máy tính để bàn chứ không phải trên web. – ranisalt

+4

Bạn có muốn người dùng có thể kích hoạt trình duyệt và điều hướng đến http: // localhost/và sử dụng giao diện của ứng dụng của bạn không? Hay bạn muốn người dùng mở một tệp thực thi và được trình bày với giao diện web? –

+12

@RobertDinu Tôi nghĩ rằng anh ấy muốn xây dựng một ứng dụng máy tính để bàn với C++ và tạo giao diện người dùng với HTML/CSS –

19

Sciter chính xác là - công cụ HTML/CSS có thể nhúng với API C/C++. Nhỏ gọn và đa nền tảng.

Và kiểm tra this article.

Trình phân tích có cùng một feature set as WPF nhưng sử dụng HTML/CSS thay vì XAML và sử dụng API gốc.

Tính năng out of the box:

  • HTML, CSS, SVG, APNG (hoạt hình PNG), sprites hình ảnh,
  • <plaintext> - biên tập với làm nổi bật cú pháp,
  • <htmlarea> - WYSIWYG soạn thảo HTML,
  • <frame type=pager> - xem trước khi in và in HTML/CSS,
  • hình ảnh động,
  • HTTP cli ent, REST/JSON khách hàng, WebSocket của, DataSockets,
  • , vv

Việc áp dụng tương tự với Sciter UI chạy trên Windows, MacOS và Linux từ các nguồn giống nhau:

enter image description here

Disclaimer : Tôi là tác giả của Sciter Engine.

+0

Tôi là người mới bắt đầu trong c + + nhưng tôi thấy tài liệu nhỏ gọn và đáng sợ cho người mới bắt đầu .. tài liệu nên bắt đầu bằng cách chạy demo trong codeblocks hoặc thậm chí một trình bao để xem nó hoạt động ... Vui lòng thêm một số nỗ lực tiếp thị trong dự án của bạn – repzero

+0

@repzero kiểm tra bài viết này http://www.codeproject.com/Articles/859098/Sciter-multiplatform-embeddable-HTML-CSS-scripting, tôi nghĩ rằng nó phù hợp cho người mới bắt đầu C++. –

+1

@repzero Như của codeblocks, chỉ cần mở {sciter-sdk} /demos/usciter/usciter.cbp trong IDE đó, chọn mục tiêu Release64 và nhấp vào nút "Build and Run" - bạn sẽ thấy ứng dụng đang chạy. –

5

Bạn có thể sử dụng Chromium Embedded Framework để nhúng nội dung HTML5 vào ứng dụng của mình. Bạn sẽ nhận được sức mạnh và tốc độ của Chromium và khả năng xây dựng các ứng dụng GUI giống như cách bạn phát triển các ứng dụng web.

3

Tôi nghĩ rằng Electron sẽ là một bổ sung tuyệt vời cho các câu trả lời khác.

Sử dụng NodeJS để chạy Cửa sổ Webkit. Bản thân điện tử chỉ là html/css/js, nhưng bạn có thể sử dụng bất kỳ Mô-đun Nút nào trong Ứng dụng Điện tử của mình - bao gồm cả mã C++ tùy chỉnh, nguyên bản được biên dịch. Một Module có thể nhúng mã C++ của bạn sẽ là nút-gyp.

Xin lưu ý rằng quy trình làm việc này có thể bao gồm JS hơn một chút so với các câu trả lời khác của bạn.

Trình chỉnh sửa văn bản yêu thích của tôi, Atom, được tạo bằng Electron.