Подтвердить что ты не робот

Как создать собственные С++-приложения с HTML/CSS-интерфейсом?

Возможно ли разработать программу на С++ при использовании HTML и CSS для пользовательского интерфейса? Я знаю о программировании с помощью Javascript с использованием контейнера Webkit, но мне очень интересно, как разрабатывать С++.

Я чувствовал себя влюбленным в С# WPF, когда я разрабатывался под Windows, но теперь я перешел в Linux, и я не нашел хорошего инструмента для использования разметки для интерфейсов. Для этого я хотел бы смешивать HTML и CSS, которые очень легкие и простые в использовании, с кодом на С++, с чем-то вроде WPF.

О, еще одна вещь: я ищу разработку рабочего стола, а не веб.

4b9b3361

Ответ 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, чтобы превратить ваш проект в собственное приложение. Но, будь я на вашем месте, я бы сохранил его как веб-приложение, потому что облачные приложения становятся все более и более популярными.