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 :

Installation de QtFreeVirtualKeyboard


Sujet :

Qt Quick

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut Installation de QtFreeVirtualKeyboard
    Bonjour à tous,

    J'ai besoin d'utiliser un clavier virtuel pour un application QtQuick fonctionnant sous Windows/Linux. Je sais qu'il en existe déjà un avec Qt, mais il nécessite la version commercial !

    Voici le liens vers le plugins : https://github.com/githubuser0xFFFF/...irtualKeyboard

    J'aimerais tout d'abord le faire fonctionner sous Windows. J'ai fait plusieurs tentatives jusqu'ici de déplacer le plugins à pleins d'endroit mais j'ai toujours le même problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    module "VirtualKeyboard" is not installed 
         import VirtualKeyboard 1.0 
         ^
    Tout d'abord, j'ai essayé de placer les fichiers nécessaires au plugins ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    C:\Qt\5.4\msvc2013\plugins\platforminputcontexts\VirtualKeyboard\
           - FontAwesome.otf 
           - InputPanel.qml 
           - KeyButton.qml 
           - KeyPopup.qml 
           - qmldir 
           - VirtualKeyboard.dll
           - VirtualKeyboard.pdb
    Mais cela ne fonctionne pas, toujours le même problème.

    J'ai ensuite essayé de les placer ici, dans le répertoire de l'exemple qui vient avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    \examples\qmlapp\VirtualKeyboard\
           - FontAwesome.otf 
           - InputPanel.qml 
           - KeyButton.qml 
           - KeyPopup.qml 
           - qmldir 
           - VirtualKeyboard.dll
           - VirtualKeyboard.pdb
    Maintenant, il semble le voir, mais j'ai à présent un autre erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    examples/qmlapp/VirtualKeyboard/InputPanel.qml:16: ReferenceError: InputEngine is not defined
    J'espère que quelqu'un pourra m'aider, j'ai plus trop d'idée de ce qui ne fonctionne pas

    Merci beaucoup
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 585
    Points
    188 585
    Par défaut


    Tu tentes d'installer une extension Qt Quick comme une extension Qt . Tout se passe dans le dossier imports, si tu veux tout mettre dans le dossier de Qt. Dans le code, tu peux jouer avec engine()->addImportPath().
    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
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Merci pour votre aide

    J'ai réussi à le faire fonctionne en utilisant cette structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    C:\Qt\5.4\msvc2013\plugins\platforminputcontexts
           - VirtualKeyboard.dll
           - VirtualKeyboard.pdb
     
    C:\Qt\5.4\msvc2013\qml\QtQuick\VirtualKeyboard
           - FontAwesome.otf 
           - InputPanel.qml 
           - KeyButton.qml 
           - KeyPopup.qml 
           - qmldir
    Bien que j'aimerais d'avantage le mettre dans mon dossier où mon application réside.

    Merci
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Bien que j'aimerais d'avantage le mettre dans mon dossier où mon application réside.
    Tu as regardé ça ?

    Citation Envoyé par dourouc05 Voir le message
    Dans le code, tu peux jouer avec engine()->addImportPath().
    http://doc.qt.io/qt-5/qtqml-syntax-i...ml-import-path
    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 !

  5. #5
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Oui, en fait j'ai vu ça.

    C'est juste que dois-je tout mettre dans le même sous-répertoire ? Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    C:\MyApplication\
           - MyApplication.exe
    C:\MyApplication\VirtualKeyboard\
           - VirtualKeyboard.dll
           - VirtualKeyboard.pdb
            - FontAwesome.otf 
           - InputPanel.qml 
           - KeyButton.qml 
           - KeyPopup.qml
    Et ensuite au démarrage de mon application, je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    engine()->addImportPath("C:\MyApplication\VirtualKeyboard\");
    Par contre, en faisant cela, le designer de QT verra des erreurs dans les fichier QML qui comporte la directive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import QtQuick.VirtualKeyboard 1.0 // Erreur le QML n'existe pas en mode design, mais sûrement en mode runtime
    import VirtualKeyboard 1.0
    Merci
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  6. #6
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Autre chose que j'ai essayé et qui ne fonctionne toujours pas :

    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
     
    ..\examples\qmlapp
       - qmlApp.exe
    ..\examples\qmlapp\plugins\platforminputcontexts
       - VirtualKeyboard.dll
       - VirtualKeyboard.pdb
    ..\examples\qmlapp\QtQuick\VirtualKeyboard
       - FontAwesome.otf 
       - InputPanel.qml 
       - KeyButton.qml 
       - KeyModel.qml 
       - KeyPopup.qml
       - qmldir
     
    // Main.cpp
    view.engine()->addImportPath(qApp->applicationDirPath());

    La seule façon que j'ai réussi à le faire fonctionner, c'est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    C:\Qt\5.4\msvc2013\plugins\platforminputcontexts
           - VirtualKeyboard.dll
           - VirtualKeyboard.pdb
     
    C:\Qt\5.4\msvc2013\qml\QtQuick\VirtualKeyboard
           - FontAwesome.otf 
           - InputPanel.qml 
           - KeyButton.qml 
           - KeyPopup.qml 
           - qmldir
    Mais, je ne tiens pas à mettre les composants dans l'installation de QT, j'aimerais mieux qu'il soit dans le même répertoire que mon application.

    J'ai beau lire la doc sur le site de QT, mais je comprend pas plus J'espère quelqu'un pourra m'éclaire sur la structure nécessaire à utiliser pour que le plugins soit sous le répertoire de mon application.

    Merci
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  7. #7
    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
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonjour,

    Techniquement, sans prendre en compte l'ajout d'import paths, avec l'import :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import QtQuick.VirtualKeyboard 1.0
    Vous sous-entendez avoir l'arborescence contenant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ..\examples\qmlapp\QtQuick\VirtualKeyboard
       - FontAwesome.otf 
       - InputPanel.qml 
       - KeyButton.qml 
       - KeyModel.qml 
       - KeyPopup.qml
       - qmldir
    Si vous utilisez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import VirtualKeyboard 1.0
    Cela sous-entend l'arborescence suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ..\examples\qmlapp\VirtualKeyboard
       - FontAwesome.otf 
       - InputPanel.qml 
       - KeyButton.qml 
       - KeyModel.qml 
       - KeyPopup.qml
       - qmldir
    Le seul élément dont je ne suis pas sûr est le fichier .dll, à cause des import VirtualKeyboard 1.0 des fichiers QML de ce path. Il faudrait regarder de ce côté-là par rapport à l'une ou à l'autre des arborescences ci-dessus (qui sont de mon point de vue valides).

    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

  8. #8
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Voilà ce que j'ai essayé suivant vos conseilles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ..\examples\qmlapp\VirtualKeyboard
       - VirtualKeyboard.dll
       - VirtualKeyboard.pdb
     
    ..\examples\qmlapp\QtQuick\VirtualKeyboard
       - FontAwesome.otf 
       - InputPanel.qml 
       - KeyButton.qml 
       - KeyModel.qml 
       - KeyPopup.qml
       - qmldir
    Toutefois, j'obtiens encore une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /examples/qmlapp/MainContainer.qml:21:1: module "VirtualKeyboard" is not installed 
         import VirtualKeyboard 1.0 
         ^
    Ce qui me fait penser que dans le fichier MainContainer il y a utilisation de l'object qml (InputPanel). Ce dernier est implémenté dans un des QML produit par le plugins VirtualKeyboard. Si je regarde le import qu'il y a au début du fichier "InputPanel.qml", on remarque ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import VirtualKeyboard 1.0
    Si on regarde cela d'un point de vue architectural, le VirtualKeyboard (dll) est situé dans 2 dossiers plus haut que ces QML (basé sur ma structure citée précédemment). Est-ce que cela pourrait être le problème ?

    J'ai aussi essayé d'autres combinaisons, mais sans succès
    J'ai essayé d'ajouter des imports path avec (view.engine()->addImportPath), mais toujours sans succès.

    Merci
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 585
    Points
    188 585
    Par défaut
    La DLL ne doit pas être là où qmldir dit qu'elle est (donc dans le même dossier par défaut) ?
    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 !

  10. #10
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Le fichier qmldir, où doit-il être au juste ? Dans le même répertoire que les qml de la DLL (\example\QtQuick\VirtualKeyboard\qmldir) ou il doit être avec la dll dans (\example\VirtualKeyboard\qmldir) ?

    Enfin, de ce que je comprend après avoir lu 10 fois la documenation, il devrait être ici : \example\QtQuick\VirtualKeyboard\qmldir.

    Dans ce fichier on retrouve ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    module QtQuick.VirtualKeyboard
    InputPanel 1.0 InputPanel.qml
    Ce qui semble être correct, puisque InputPanel est bien dans le répertoire \QtQuick.VirtualKeyboard\. Par contre, le fichier InputPanel lui fait un import VirtualKeyboard 1.0. Mais la dll VirtualKeyboard.dll est 2 répertoire au dessus, donc dans \example\VirtualKeyboard\VirtualKeyboard.dll.

    Le plugin est relativement assez petit, j'amagine que quelqu'un avec de meilleures connaissances que moi pourrait prendre 5 minutes pour le télécharger, l'ouvrir et juste m'indiquer où placer les choses à la bonne place pour que ce plugins puisse être placé dans mon répertoire d'application au lieu de l'installation global de QT. Voici le URL https://github.com/githubuser0xFFFF/...irtualKeyboard


    Merci beaucoup
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  11. #11
    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
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonsoir,

    J'ai cloné le Git et utilisé l'arborescence suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /.../.
        - testkeyboard.exe
     
    /..././QtQuick/VirtualKeyboard
        - InputPanel.qml
        - KeyButton.qml
        - ...
     
    /..././platforminputcontexts
        - VirtualKeyboard.dll
    Le main.qml de test que j'utilise est le suivant :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    import QtQuick 2.4
    import QtQuick.Window 2.2
    import QtQuick.VirtualKeyboard 1.0
     
    Window {
        width: 800
        height: 500
        visible: true
     
        MainForm {
            anchors.fill: parent
            mouseArea.onClicked{
                Qt.quit();
            }
     
        }
     
        InputPanel {
            id: inputPanel
            z: 99
            y: appContainer.height
            anchors.left: parent.left
            anchors.right: parent.right
            states: State {
                name: "visible"
                when: Qt.inputMethod.visible
                PropertyChanges {
                    target: inputPanel
                    y: appContainer.height - inputPanel.height
                }
            }
            transitions: Transition {
                from: ""
                to: "visible"
                reversible: true
                ParallelAnimation {
                    NumberAnimation {
                        properties: "y"
                        duration: 150
                        easing.type: Easing.InOutQuad
                    }
                }
            }
        }
    }
    De mon côté, cela fonctionne avec ça, sans import path ni rien. Qt Creator n'aime pas trop parce qu'il n'arrive pas à trouver les fichiers, ce qui fait que je n'ai pas de coloration, mais il doit y avoir une solution.

    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

  12. #12
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Wow, merci beaucoup pour votre précieux temps Amnell, ça fonctionne très bien. Enfin !
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  3. Réponses: 19
    Dernier message: 24/05/2002, 16h36
  4. Réponses: 7
    Dernier message: 01/05/2002, 20h23
  5. [Kylix] Comment installer Kylix sur Mandrake 8.2 (page2)
    Par Philippe LE PONT dans le forum EDI
    Réponses: 3
    Dernier message: 01/05/2002, 12h52

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