2009-07-08 6 views
8

Les technologies Web peuvent-elles être utilisées pour une application de bureau écrite dans un langage traditionnel comme le C++? J'imagine qu'ils peuvent le faire, même si je n'ai trouvé aucune preuve de cela. Je comprends qu'Adobe Air peut créer des applications de bureau en utilisant Flash, mais il utilise des langages Web comme php, etc. Ce que je voudrais faire, c'est pouvoir créer mes éléments graphiques - éditer des boîtes, des curseurs, des menus, etc., en utilisant html/CSS - au lieu de widgets natifs - dans une application qui est normalement construite de manière conventionnelle - en utilisant Visual Studio par exemple.Comment la technologie Web peut-elle être utilisée pour une interface graphique d'application C++?

Est-ce que quelqu'un sait si cela a été fait, s'il y a un logiciel qui le rend plus facile, ou s'il y a des objections à cette approche?

Répondre

3

Qt se déplace dans cette direction, avec CSS-like styling et un prochain "declarative" UI mechanism.

En outre, vous pouvez conduire votre application avec Javascript via QtScript.

Vous pouvez également utiliser QtWebKit pour fournir une interface utilisateur HTML, il est également possible d'établir un lien entre le code C++ et le Javascript.

+1

QtWebKit semble intéressant - mais j'aimerais avoir une interface graphique qui n'a pas besoin d'une bibliothèque externe puissante - juste un moteur de rendu Web conforme aux normes. – Roderick

+0

Vous pouvez créer un lien statique avec Qt si c'est important pour vous. –

2

xul utilise xml et CSS pour définir les éléments GUI.

0

En tant que ligne de touche, j'ai construit une application efficace en utilisant un contrôle de formulaire IE, intégrant fondamentalement un navigateur Web dans mon application, qui a servi mes objectifs à ce moment.

Edit:

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

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

+0

Cela ressemble au genre de chose. Comment votre formulaire a-t-il communiqué avec votre application? – Roderick

+0

J'utilisais C# .Net et autant que je me souvienne, j'ai importé shdocview.dll, mais j'ai dû le convertir en un assemblage géré ou quelque chose comme ça. Essayez-le, une fois que j'ai commencé, c'était facile. Il est possible que les contrôles de formulaire .Net incluent maintenant le contrôle du navigateur Web? Ou utilisez-vous VC6? –

1

Une application que je suis impliqué dans, TomTom HOME 2 est construit comme un grand C++ plugin dans le framework Mozilla XulRunner. Ce framework est partagé avec Mozilla FireFox donc il y a beaucoup de points communs. TomTom HOME est un téléchargement gratuit (comme dans la bière) et la partie modèle est en Javascript, vous pouvez donc voir comment cela fonctionne. Son prédécesseur, TomTom HOME 1.x, a été construit comme décrit par Antony Carthy, enveloppant le contrôle ActiveX MSHTML (IE) ou Safari sur Mac. (Avertissement: TomTom a déposé un certain nombre de demandes de brevet pour communiquer avec le navigateur intégré, les interfaces ActiveX au moteur JS sont plutôt limitées)

Il est assez facile si vous avez un design MVC approprié, et il le rend aussi facile pour garder la séparation Model/View propre pendant l'implémentation. Vous ne pouvez pas mettre un "hack rapide" dans le modèle pour exposer certains détails internes du modèle. Le code View est Javascript et il ne peut accéder au modèle C++ que via des interfaces définies.

1

Consultez le Awesomium SDK. Il est basé sur Chromium qui alimente Google Chrome. C'est un pont pour votre application native en C++ ou .NET avec une interface utilisateur web html5/js/css.

Questions connexes