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

Discussion :

QML & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Par défaut QML & C++
    Bonjour bonjour


    Voilà, je viens sur ce forum afin de solliciter votre aide, afin de m'aider à comprendre & à réaliser une connection entre une interface faite en QML et un futur éventuel code en C++.

    Donc voilà, rapidement j'ai décidé de suivre l'exemple de la calculatrice avec le code en javascript, sauf que moi je le veux en C++ ....
    Pour se faire, j'ai lu ceci: utiliser qml dans du c++ mais je n'ai pas vraiment compris grand chose...

    Si qqn aurait bien l’amabilité de me venir en aide...

    Merci encore

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour sbensid et bienvenu sur le forum

    Le QML peut interagir de 2 manières avec le C++ :
    - tu peux créer des objets C++/Qt qui seront utiliser dans du code QML/javascript
    - tu peux créer des items QML/Javascript qui seront utilisé par du code C++/Qt

    Pour la seconde méthode, j'avais écrit une version du premier exercice Qt utilisant un objet QML appelé par un programme C++/Qt et affiché dans une QDeclarativeView (http://www.developpez.net/forums/d96...e/#post5443290)

    Pour la première méthode, il faut créer un QObject et utiliser la fonction qmlRegisterType pour accéder cet objet dans QML (http://qt.developpez.com/doc/latest/qml-extending/)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Par défaut
    Bonjour, déjà, un grand merci à gbdivers pour ta réponse
    Je vais re-plonger à fond dans le sujet avec ce que tu m'as fournit.


    Par contre, j'ai une question, tu dis:
    Le QML peut interagir de 2 manières avec le C++ :
    - tu peux créer des objets C++/Qt qui seront utiliser dans du code QML/javascript
    - tu peux créer des items QML/Javascript qui seront utilisé par du code C++/Qt
    Ma question: le JavaScript est obligatoirement présent???
    j'n'ai vraiment aucune notion et ca me parait donc un peu casse gueule


    Merci

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Non, tu n'es pas obligé d'utiliser du code javascript. Mais ce n'est pas compliqué de l'utiliser non plus et ça serait dommage d'utiliser une solution compliquée en C++ s'il existe une solution simple en javascript.

    Par exemple, dans le code de l'exercice, j'utiliser une fonction javascript updateSelectedColor qui réalise de simples calculs. Cette fonction est intégrée directement dans le code QML mais on peut également l'intégrer dans un fichier séparé.
    Pour réaliser la même chose en C++/Qt, il faudrait créer une classe héritant de QObject et ajouter la fonction dans cette classe, puis utiliser qmlRegisterType pour que cette classe puisse être appelée dans le code QML.

    Donc en fonction des besoins, tu peux faire les 2

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