Как создать собственные С++-приложения с HTML/CSS-интерфейсом?
Возможно ли разработать программу на С++ при использовании HTML и CSS для пользовательского интерфейса? Я знаю о программировании с помощью Javascript с использованием контейнера Webkit, но мне очень интересно, как разрабатывать С++.
Я чувствовал себя влюбленным в С# WPF, когда я разрабатывался под Windows, но теперь я перешел в Linux, и я не нашел хорошего инструмента для использования разметки для интерфейсов. Для этого я хотел бы смешивать HTML и CSS, которые очень легкие и простые в использовании, с кодом на С++, с чем-то вроде WPF.
О, еще одна вещь: я ищу разработку рабочего стола, а не веб.
Ответы
Ответ 1
Да, это возможно. То, что вы хотите, это веб-фреймворк C++. Вы можете начать с просмотра CppCMS - бесплатной высокопроизводительной платформы веб-разработки (не CMS), предназначенной для быстрой разработки веб-приложений.
Изменить. После уточнения вопроса я думаю, что Awesomium подойдет для ваших нужд.
Вы можете достичь той же функциональности, встроив WebKit (или Gecko), но, насколько я знаю, это именно то, что делает Awesomium за кулисами.
Альтернативой является librocket - пакет промежуточного программного обеспечения C++, разработанный для игровых приложений. Как вы можете догадаться из описания, он хорошо подходит для игр или приложений реального времени.
Ответ 2
Sciter - это то, что - встраиваемый механизм HTML/CSS с C/С++ API. Компактная и многоплатформенная.
И проверьте эту статью.
Sciter имеет тот же набор функций как WPF, но использует HTML/CSS вместо XAML и использует собственный API.
Особенности из коробки:
- HTML, CSS, SVG, aPNG (анимированные PNG), спрайты изображений,
-
<plaintext>
- редактор с подсветкой синтаксиса,
-
<htmlarea>
- Редактор HTML WYSIWYG,
-
<frame type=pager>
- предварительный просмотр печати и печать HTML/CSS,
- анимация,
- HTTP-клиент, клиент REST/JSON, WebSocket, DataSockets,
- и т.д..
То же приложение с пользовательским интерфейсом Sciter, работающим в Windows, MacOS и Linux из тех же источников:
![введите описание изображения здесь]()
Отказ от ответственности: я являюсь автором Sciter Engine.
Ответ 3
Вы можете использовать Chromium Embedded Framework для встраивания содержимого HTML5 в свое приложение.
Вы получите всю мощь и скорость Chromium, а также сможете создавать приложения с графическим интерфейсом так же, как вы разрабатываете веб-приложения.
Ответ 4
Я думаю, Электрон будет хорошим дополнением к другим ответам.
Он использует NodeJS для запуска окна Webkit. Сам по себе Electron - это только html/css/js, но вы можете использовать любой Node-модуль в вашем приложении Electron, включая собственный, скомпилированный код C++. Возможный модуль для встраивания вашего кода C++ - это node-gyp.
Имейте в виду, однако, что этот рабочий процесс может включать немного больше JS, чем было бы с другими ответами.
Мой любимый текстовый редактор Atom был создан с помощью Electron.
Ответ 5
Начиная с 2019 года, я предлагаю вам ознакомиться с сверхлегким механизмом пользовательского интерфейса HTML
Не с открытым исходным кодом, доступно для C++. OpenGL и DirectX рендеринг поддерживается.
Сверхлегкий - это более легкий и быстрый способ интеграции HTML-интерфейса в ваш C++ приложение.
Это сделал создатель Awesomium, который, к сожалению, решил удалить Awesomium. Это то, что мы получили сейчас.
Если вам нужен более тяжелый вес, а не легкий, я рекомендую взглянуть на CEF. Это очень мощный (и с открытым исходным кодом) инструмент.
Ответ 6
Вы можете использовать WT или CppCMS для анализа C++ в HTML и CSS, затем вы можете использовать Chromium, чтобы превратить ваш проект в собственное приложение. Но, будь я на вашем месте, я бы сохранил его как веб-приложение, потому что облачные приложения становятся все более и более популярными.