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 Quick Discussion :

Utilisation d'une extension


Sujet :

Qt Quick

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 145
    Par défaut Utilisation d'une extension
    Bonjour à tous =)

    Voilà plusieurs jours que je me débat avec QtQuick pour commencer un petit projet : je mets un point d'honneur à ce que tous mes composants soient réutilisables, et donc je les développe dans une bibliothèque à côté du projet principal.

    Mes souhaits sont :
    1) Développer les UI en QML
    2) La logique en C++
    3) Ce qui implique que j'utilise qmlRegisterType sur les classes en relation avec la logique. J'aimerais donc si possible, que le module "logique" dans lequel seront mises toutes ces classes, soit dissocié du module "controls", qui m'offrira simplement la possibilité d'utiliser les composants "UI".

    Pour cela, développer un extension plugin m'a semblé correct. Pour l'instant, je ne travaille qu'avec un seul module, "controls". Mais depuis mon projet principal, dans mon main.qml, QtCreator ne reconnaît pas mon type QML (qui correspond à un fichier .qml), mais uniquement le binding QML de la classe de logique (understand ? x) ). Pourtant, l'exécution se déroule normalement.

    Mon fichier controls.pro copie les fichiers .qml et le qmldir dans le répertoire de build. Le dossier parent fait partie des répertoires d'import du système QML.

    Je vous joins une capture d'écran, vous comprendrez un peu mieux je pense.

    Ou alors, un extension plugin n'est pas approprié à ce que je veux faire ?
    Ce que je souhaite faire dans mon 3) est-il possible ?

    Merci à tous

    Nom : Capture du 2014-08-31 17:24:02.png
Affichages : 206
Taille : 179,6 Ko

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Dans le sens où l'exécution se produit normalement, je pense que ce qu'il vous manque est un fichier qmltypes à côté de votre qmldir, tel qu'indiqué ici : http://doc.qt.digia.com/qtcreator-2....h-plugins.html
    Dans votre qmldir, vous devrez alors ajouter typeinfo plugins.qmltypes pour un fichier qmltypes nommé plugins.qmltypes situé à côté du qmldir.
    Est-ce fonctionnel dans votre cas ?

    Bonne journée à vous,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 145
    Par défaut
    Bonjour et merci pour ta réponse =)

    J'ai généré le .qmltypes avec qmlplugindump :
    qmlplugindump controls 1.0 > controls.qmltypes

    Que j'ai placé aux côtés du qmldir.

    Mais cela ne fonctionne pas. Selon le contenu du .qmltypes, il semble que GridMenu.qml ne soit pas considéré comme appartenant au module "controls". Pourtant, il fait bien partie de l'extension plugin. Ou alors je n'ai pas saisi une subtilité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // controls.qmltypes
    Module {
        Component {
            name: "GridMenuLogic"
            prototype: "QObject"
            exports: ["GridMenuLogic 1.0"]
            exportMetaObjectRevisions: [0]
            Signal {
                name: "itemSelected"
                Parameter { type: "string" }
            }
        }
    }

  4. #4
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    C'est étrange qu'il n'y ait pas les fichiers .qml dans le fichier généré. Vous avez exécuté le script dans quel dossier ? Quelle est votre arborescence ? Et quelle est votre version de Qt Creator ?

    Bonne journée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 145
    Par défaut
    J'utilise QtCreator 3.2.0 (la dernière).

    Je n'ai pas de dossier "import", il ne m'a pas semblé obligatoire =/

    Voici l'arborescence de ma lib, qtquick est un projet de sous-dossiers, controls est le projet d'extension plugin :

    qtquick
    - qtquick.pro
    - controls // J'ai exécuté qmlplugindump dans ce dossier
    --- controls.pro
    --- controls_plugin.(h/cpp)
    --- gridmenulogic.(h/cpp)
    --- GridMenu.qml
    --- qmldir
    --- controls.qmltypes

  6. #6
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Et quel est le contenu de votre nouveau fichier qmldir ? Il me semble que vous respectez bien la ressource http://qt-project.org/doc/qt-5/qtqml...ppplugins.html donc je ne saurais trop dire pour le moment.

    Bonne soirée,
    Louis
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. Comment connaître le plugin qui utilise une extension ?
    Par Contrec dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 03/03/2010, 11h06
  2. valider une extension, utilisation de regex?
    Par nadsky dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2009, 14h58
  3. [Joomla!] Utiliser un module/une extension Joomla ailleurs que dans le CMS
    Par fashuai dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/04/2009, 21h59
  4. Réponses: 4
    Dernier message: 14/04/2009, 10h26
  5. [Joomla!] Utilisation d'une extension TYPO3 dans Joomla
    Par bhrached dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 26/03/2008, 12h15

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