2009-07-08 14 views
8

¿Se pueden usar tecnologías web para una aplicación de escritorio escrita en un lenguaje tradicional como C++? Supongo que pueden, aunque no he podido encontrar ninguna evidencia de esto. Entiendo que Adobe Air puede hacer aplicaciones de escritorio usando Flash, pero usa lenguajes web como php, etc. Lo que me gustaría hacer es poder construir mis elementos de GUI: editar cuadros, controles deslizantes, menús, etc. usando html/CSS, en lugar de widgets nativos, en una aplicación que de otro modo se genera de la manera convencional, por ejemplo, con Visual Studio.¿Cómo se puede usar la tecnología web para una GUI de aplicación C++?

¿Alguien sabe si esto se ha hecho, si hay algún software que lo hace más fácil o si hay alguna objeción a este enfoque?

Respuesta

3

Qt se mueve en esta dirección, con CSS-like styling y una próxima "declarative" UI mechanism.

Además, puede conducir su aplicación con Javascript a través del QtScript.

También podría usar QtWebKit para proporcionar una interfaz de usuario basada en HTML, también es posible crear un puente entre el código C++ y Javascript.

+1

QtWebKit suena interesante, pero me gustaría tener una GUI que no necesita una poderosa biblioteca externa, solo un procesador web que cumpla con los estándares. – Roderick

+0

Puede establecer un enlace estático con Qt si eso es importante para usted. –

2

xul utiliza xml y CSS para definir los elementos de la GUI.

0

Como actividad complementaria, he creado una aplicación eficiente usando un control de formulario IE, básicamente incorporando un navegador web en mi aplicación, que me fue útil en ese momento.

Editar:

http://msdn.microsoft.com/en-ca/library/aa770041(VS.85).aspx

https://stackoverflow.com/questions/tagged/mshtml

+0

Esto suena como el tipo de cosa. ¿Cómo se comunicó su formulario con su aplicación? – Roderick

+0

Estaba usando C# .Net y, por lo que recuerdo, importé shdocview.dll, pero tuve que convertirlo a un ensamblado administrado o algo por el estilo. Pruébalo, una vez que comencé fue fácil. Es posible que los controles de formulario .Net ahora incluyen el control del navegador web? ¿O estás usando VC6? –

1

Una aplicación que he estado involucrado en, TomTom HOME 2 está construido como un gran complemento C++ en el marco de Mozilla XULRunner. Este marco se comparte con Mozilla FireFox, por lo que hay muchas cosas en común. TomTom HOME es una descarga gratuita (como en la cerveza) y la parte del modelo está en JavaScript legible, por lo que puede echar un vistazo para ver cómo funciona.

Su predecesor, TomTom HOME 1.x se construyó como Antony Carthy describe, envolviendo el control ActiveX de MSHTML (IE) o Safari en Mac. (Descargo de responsabilidad: TomTom ha presentado una serie de solicitudes de patente para comunicarse con el navegador integrado, las interfaces ActiveX para el motor JS son bastante limitadas)

Es bastante fácil si tiene un diseño MVC adecuado, y lo hace también fácil para mantener la separación Modelo/Vista limpia durante la implementación. No puede poner un "truco rápido" en el modelo para exponer algunos detalles internos del modelo. El código View es Javascript y solo puede acceder al modelo C++ a través de interfaces definidas.

1

Echa un vistazo a Awesomium SDK. Está basado en Chromium que impulsa Google Chrome. Es un puente para su aplicación nativa en C++ o .NET con una interfaz de usuario web html5/js/css.

Cuestiones relacionadas