¿Cómo construir aplicaciones nativas de C ++ con interfaz de usuario HTML / CSS?

¿Es posible desarrollar un progtwig C ++ al usar HTML y CSS para la interfaz de usuario? Sé acerca de progtwigr con Javascript usando un contenedor Webkit, pero estoy realmente interesado en el desarrollo de C ++.

Me enamoré de C # WPF cuando me desarrollé en Windows, pero ahora me mudé a Linux y no encontré una buena herramienta para usar el marcado para las interfaces. Para esto, me gustaría mezclar HTML y CSS, que son muy livianos y fáciles de usar, con código C ++, con algo como WPF.

Oh, una cosa más: estoy buscando desarrollo de escritorio, no web.

Sí, es posible. Lo que quieres es un marco web en C ++. Puede comenzar mirando CppCMS, un Marco de desarrollo web gratuito de alto rendimiento (no un CMS) destinado al desarrollo rápido de aplicaciones web.

Editar : Después de aclarar la pregunta, creo que Awesomium sería una buena opción para sus necesidades.

Puede lograr la misma funcionalidad incorporando WebKit (o Gecko) pero hasta donde sé, eso es exactamente lo que Awesomium hace detrás de escena.

Una alternativa es paquetecket: un paquete de middleware de interfaz C ++ diseñado para aplicaciones de juegos. Como puede adivinar por la descripción, es una buena opción para juegos o aplicaciones en tiempo real.

Sciter es exactamente eso – motor de HTML / CSS incrustable con C / C ++ API. Compacto y multiplataforma.

Y revisa este artículo .

Sciter tiene el mismo conjunto de características que WPF pero usa HTML / CSS en lugar de XAML y usa API nativa.

Características fuera de la caja:

  • HTML, CSS, SVG, aPNG (PNG animados), sprites de imágenes,
  • </plaintext></code> &#8211; editor con resaltado de syntax, </li> <li> <code><htmlarea></htmlarea></code> &#8211; Editor WYSIWYG HTML, </li> <li> <code><frame type=pager/></code> &#8211; imprimir vista previa y imprimir HTML / CSS, </li> <li> animaciones, </li> <li> Cliente HTTP, cliente REST / JSON, WebSocket, DataSockets, </li> <li> etc. </li> </ul> <p> La misma aplicación con Sciter UI corriendo en Windows, MacOS y Linux desde las mismas fonts: </p> <p> <img src="http://sofes.miximages.com/c%2B%2B/fqfYD.png" alt="enter image description here"/> </p> <p> Descargo de responsabilidad: soy un autor de Sciter Engine. </p> </div> </li><!-- #comment-## --> <div class="list-group-item list-group-item-action flex-column align-items-start"> <p> Puede usar Chromium Embedded Framework para incrustar contenido HTML5 en su aplicación. Obtendrá el poder y la velocidad de Chromium y la capacidad de crear aplicaciones de GUI de la misma forma que desarrolla aplicaciones web. </p> </div> </li><!-- #comment-## --> <div class="list-group-item list-group-item-action flex-column align-items-start"> <p> Creo que Electron sería una buena adición a las otras respuestas. </p> <p> Utiliza NodeJS para ejecutar una ventana de Webkit. El propio electrón es solo html / css / js, pero puede usar cualquier módulo de nodo dentro de su aplicación de electrón, incluido el código C ++ comstackdo de forma nativa. Un posible Módulo para incrustar su código C ++ sería node-gyp. </p> <p> Tenga en cuenta, sin embargo, que este flujo de trabajo puede incluir un poco más de JS del que tendría con las otras respuestas. </p> <p> Mi editor de texto favorito, Atom , se hizo con Electron. </p> </div> </li><!-- #comment-## --> </div> </div> </div> <div class="col-md-4 order-3"> <div class="card border-0"> <div class="card-header">Intereting Posts</div> <div class="list-group list-group-flush"> </div> </div> </div> </div> <div class="clearfix mt-5"></div> <hr /> <footer> <ul class="list-inline text-center"> <li class="list-inline-item">© 2017 Desarrollo HTML</li> <li class="list-inline-item"><a href="/topics">Topics</a></li> <li class="list-inline-item"><a href="#">Terms</a></li> <li class="list-inline-item"><a href="#">Privacy Policy</a></li> </ul> </footer> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script> </body> <!-- Default Statcounter code for Dokry.com http://www.dokry.com --> <script type="text/javascript"> var sc_project=11853078; var sc_invisible=1; var sc_security="ec194ffb"; </script> <script type="text/javascript" src="https://www.statcounter.com/counter/counter.js" async></script> <noscript><div class="statcounter"><a title="Web Analytics" href="https://statcounter.com/" target="_blank"><img class="statcounter" src="https://c.statcounter.com/11853078/0/ec194ffb/1/" alt="Web Analytics"></a></div></noscript> <!-- End of Statcounter Code --> </html>