IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Intégrer du code Java dans un programme Qt en C++


Sujet :

Qt

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Points : 71
    Points
    71
    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.

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut


    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 (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    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).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Points : 71
    Points
    71
    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.

  5. #5
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    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.

  6. #6
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Points : 71
    Points
    71
    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?

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut
    Pourquoi pas regarder http://www.ics.com/technologies/qt_google_apis/, au fait ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. intégrer du code R dans une application java
    Par supcomingenieur dans le forum R
    Réponses: 3
    Dernier message: 04/06/2013, 14h48
  2. Intégrer du java dans mon programme Delphi
    Par Bruno13 dans le forum Langage
    Réponses: 4
    Dernier message: 28/05/2008, 15h22
  3. Intégrer un code assembleur dans un programme
    Par laracroft87 dans le forum C
    Réponses: 5
    Dernier message: 27/04/2008, 19h15
  4. intégrer du code java dans windev
    Par akremb22 dans le forum WinDev
    Réponses: 1
    Dernier message: 15/04/2008, 18h28
  5. integrer du code perl dans un programme java
    Par alphonse62 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 07/05/2007, 08h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo