2009-07-08 9 views
8

Le tecnologie web possono essere utilizzate per un'applicazione desktop scritta in un linguaggio tradizionale come C++? Immagino che possano, anche se non sono stato in grado di trovare alcuna prova di ciò. Comprendo che Adobe Air può creare app desktop usando Flash, ma usa linguaggi web come php, ecc. Quello che mi piacerebbe fare è essere in grado di costruire i miei elementi della GUI - modificare scatole, cursori, menu e così via, usando html/CSS - invece di widget nativi - in un'applicazione altrimenti costruita in modo convenzionale - utilizzando Visual Studio, ad esempio.Come può essere utilizzata la tecnologia Web per una GUI dell'applicazione C++?

Qualcuno sa se questo è stato fatto, se c'è qualche software che lo rende più facile, o se ci sono obiezioni a questo approccio?

risposta

3

Qt si sta muovendo in questa direzione, con CSS-like styling e un prossimo "declarative" UI mechanism.

Inoltre, è possibile guidare l'app con Javascript tramite QtScript.

Si può anche utilizzare QtWebKit per fornire un'interfaccia utente basata su HTML, è possibile anche il collegamento tra codice C++ e Javascript.

+1

QtWebKit sembra interessante - ma mi piacerebbe avere una GUI che non ha bisogno di una potente libreria esterna - solo un renderer web conforme agli standard. – Roderick

+0

È possibile collegare Qt in modo statico se ciò è importante per te. –

2

xul utilizza xml e CSS per definire gli elementi della GUI.

0

Come linea laterale, ho creato un'applicazione efficace utilizzando un controllo di modulo IE, incorporando fondamentalmente un browser Web nella mia app, che serviva ai miei scopi in quel momento.

Edit:

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

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

+0

Sembra il genere di cose. In che modo il tuo modulo ha comunicato con la tua app? – Roderick

+0

Ero uisng C#. Net e per quanto ricordo, ho importato shdocview.dll, ma ho dovuto convertirlo in un assembly gestito o qualcosa del genere. Fare un tentativo, una volta che ho iniziato è stato facile. È possibile che i controlli di forma .Net ora includano il controllo del browser Web? O stai usando VC6? –

1

Un'applicazione sono stato coinvolto in, TomTom HOME 2 è costruito come un grande C++ plug nel quadro di Mozilla XULRunner. Questo framework è condiviso con Mozilla FireFox quindi c'è molta comunanza. TomTom HOME è un download gratuito (come nella birra) e la parte del modello è in Javascript leggibile, quindi puoi dare un'occhiata per vedere come funziona.

Il suo predecessore, TomTom HOME 1.x è stato costruito come descritto da Antony Carthy, che include il controllo ActiveX MSHTML (IE) o Safari su Mac. (Disclaimer: TomTom ha presentato una serie di domande di brevetto per comunicare con il browser incorporato, le interfacce ActiveX al motore JS sono piuttosto limitati)

E 'abbastanza facile se si dispone di una corretta progettazione MVC, e rende anche facile per mantenere pulito il modello/vista durante l'implementazione. Non è possibile inserire un "attacco rapido" nel modello per esporre alcuni dettagli interni del modello. Il codice View è Javascript e può accedere al modello C++ solo tramite interfacce definite.

1

Controllare il Awesomium SDK. È basato su Chromium che supporta Google Chrome. È un bridge per la tua app nativa in C++ o .NET con un'interfaccia utente web html5/js/css.

Problemi correlati