Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Nouveau Membre du Club
    Inscrit en
    décembre 2007
    Messages
    395
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 395
    Points : 26
    Points
    26

    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

    Avatar de dourouc05
    Homme Profil pro Thibaut Cuvelier
    Étudiant
    Inscrit en
    août 2008
    Messages
    19 570
    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 : 19 570
    Points : 76 873
    Points
    76 873

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

    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

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

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

    Informations forums :
    Inscription : mars 2009
    Messages : 424
    Points : 757
    Points
    757

    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
    Nouveau Membre du Club
    Inscrit en
    décembre 2007
    Messages
    395
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 395
    Points : 26
    Points
    26

    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
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 701
    Points
    1 701

    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 chevronné
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2009
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : mars 2009
    Messages : 424
    Points : 757
    Points
    757

    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 :
    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)

  7. #7
    Nouveau Membre du Club
    Inscrit en
    décembre 2007
    Messages
    395
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 395
    Points : 26
    Points
    26

    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

    Avatar de dourouc05
    Homme Profil pro Thibaut Cuvelier
    Étudiant
    Inscrit en
    août 2008
    Messages
    19 570
    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 : 19 570
    Points : 76 873
    Points
    76 873

    Par défaut

    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.

    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •