Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/12/2012, 10h32   #1
bird12358
Invité régulier
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 8
Points : 8
Par défaut Intégrer du code Java dans un programme Qt en C++

Bonjour,

Ma question est assez courte. Je voudrais savoir si on peut dans un code en C++ de Qt, intégré du code en Java? Je vous explique prièvement, j'utilisais précedemment la bibliotheque Qlocation pour afficher des maps.
Je voudrais tester l'impémentation de google. Le problème c'est que les requetes envoyés sont en java. Je voudrais utiliser les fonctionnalités d'ajout des waypoints ,...

Quelqu'un peut-il m'aider??

D'avance merci.
bird12358 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 13h50   #2
dourouc05
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 18 577
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 18 577
Points : 74 129
Points : 74 129
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05


Je ne connais pas de solution prête à l'emploi, il me semble que tu devras t'orienter vers du JNI. Quelle est la quantité de code ? Si elle est relativement faible, il pourrait être plus intéressant de réécrire en C++ ou d'utiliser un convertisseur Java-C++ (probablement très simple, sans support des génériques ou de syntaxe postérieure à Java 1.4), voire d'utiliser GCJ pour lier le code Java directement au binaire (limité à Java 1.5, plus maintenu depuis un bout de temps).
__________________
Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 08h42   #3
bretus
Membre expérimenté
 
Ingénieur développement logiciels
Inscription : mars 2009
Messages : 331
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2009
Messages : 331
Points : 581
Points : 581
Bonjour,

Citation:
Envoyé par bird12358 Voir le message
Ma question est assez courte. Je voudrais savoir si on peut dans un code en C++ de Qt, intégré du code en Java? Je vous explique prièvement, j'utilisais précedemment la bibliotheque Qlocation pour afficher des maps.
Je voudrais tester l'impémentation de google. Le problème c'est que les requetes envoyés sont en java. Je voudrais utiliser les fonctionnalités d'ajout des waypoints ,...
C'est vraisemblablement possible avec des JNI, mais ça sent la galère à l'horizon...

Si tu n'as pas grand chose à mettre sur tes cartes, je te conseillerais bien de te tourner vers QtWebKit pour utiliser des API en javascript (celle de google map ou openlayers).
bretus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 18h19   #4
bird12358
Invité régulier
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 8
Points : 8
Par défaut Re

J'ai entendu parlé de ces API de google map et même de google street, elles ne sont visiblement pas disponible sous linux pour le moment.
Et donc si j'utilise QtWebKit avec les API en java et que j'ai un code en C++ ca passerai.
Je ne sais pas s'il existe des exemples sous Qt de l'utilisation de ces API.
bird12358 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 18h40   #5
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 967
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2009
Messages : 967
Points : 1 693
Points : 1 693
Javascript, pas Java

Après c'est du Web donc ce n'est plus lié à Qt (j'ai déjà fait une intégration de Google Maps avec QtWebkit). Après si tu dois faire interagir ton appli Qt avec le Javascript de la page QtWebkit (addToJavaScriptWindowObject(), evaluateJavaScript()...) on pourra t'aider.
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 19h03   #6
bretus
Membre expérimenté
 
Ingénieur développement logiciels
Inscription : mars 2009
Messages : 331
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2009
Messages : 331
Points : 581
Points : 581
Re,

Alors, dans le principe, tu ne charges pas du JAVA, mais du javascript.

Dans le principe, tu te fais une page HTML qui communique avec du C++ via JavaScript.

Côté C++ : main.cpp

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include <QtCore/QDebug>
 
#include <QtGui/QApplication>
 
#include <QtWebKit/QWebView>
#include <QtWebKit/QWebFrame>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
    QWebView webview ;
    webview.setUrl( QUrl("/home/toi/test.html") );
 
    QWebFrame *frame = webview.page()->mainFrame();
    // passage d'un QObject à la frame
    frame->addToJavaScriptWindowObject("laWebView", &webview );
    webview.show();
 
    return a.exec();
}


Côté HTML : test.hml

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<html>
<head>
 
</head>
<body>
 
<h1>page html classique</h1>
 
<div id="content">
 
</div>
 
<input type="button" value="plein ecran" onclick="laWebView.showFullScreen();" />
<input type="button" value="fermer" onclick="laWebView.close();" />
 
 
</body>
</html>
PS : Tu peux aussi appeler des fonctions javascript depuis C++ (evaluateJavaScript)
bretus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 19h09   #7
bird12358
Invité régulier
 
Inscription : décembre 2007
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 151
Points : 8
Points : 8
Par défaut Re

Oki ca marche je vais tester avec ca.
J'ai essayé de trouver des programmes d'exemple pour utiliser cette API de googlemap.
Quelqu'un aurait-il déja utilisé cette API? Est-elle plus intéressante que la librairie sous Qt pour faire de l'affichage de carte GPS?
bird12358 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 20h42   #8
dourouc05
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 18 577
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 18 577
Points : 74 129
Points : 74 129
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Pourquoi pas regarder http://www.ics.com/technologies/qt_google_apis/, au fait ?
__________________
Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h09.


 
 
 
 
Partenaires

Hébergement Web