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 :

Problème avec QObject::connect()


Sujet :

Qt Quick

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut Problème avec QObject::connect()
    Bonjour,

    Je tente d'écrire un pavé numérique en c++/QML. Je sèche sur l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ..\paveNum\main.cpp: In function 'int qMain(int, char**)':
    ..\paveNum\main.cpp:17: error: no matching function for call to 'QObject::connect(QGraphicsObject**, const char*, MyClass**, const char*)'
    c:\QtSDK\Simulator\Qt\mingw\include/QtCore/qobject.h:198: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
    c:\QtSDK\Simulator\Qt\mingw\include/QtCore/qobject.h:313: note:                 bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
    Quelqu'un aurait-il une idée d'où elle pourrait provenir ?!

    Voici les différents fichiers:

    .h
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <QObject>
    #ifndef MYCLASS_H
    #define MYCLASS_H
     
    class MyClass : QObject {
        Q_OBJECT
    public:
        MyClass();
    public slots:
        void cppSlot(QString msg);
    };
    #endif // MYCLASS_H
    .cpp
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <MyClass.h>
    #include <QDebug>
     
    MyClass::MyClass(){}
     
    void MyClass::cppSlot(QString msg){
        qDebug()<<"Resultat : "<<msg;
    }
    main.cpp
    Code C++ : 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
    #include <QtGui/QApplication>
    #include "qmlapplicationviewer.h"
    #include <QObject>
    #include <QDeclarativeView>
    #include <MyClass.h>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QDeclarativeView view;
        view.setSource(QUrl::fromLocalFile("qml/paveNum/main.qml"));
     
        MyClass *myClass = new MyClass;
        QGraphicsObject *item = view.rootObject();
     
        QObject::connect(&item, SIGNAL(qmlResult(QString)),&myClass, SLOT(cppSlot(QString)));
     
        view.show();
        return app.exec();
    }
    touche.qml
    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
    import QtQuick 1.0
     
    Item {
        id: container
        property alias toucheTxt: label.text
        signal clicked
        width: 70
        height: 70
     
        Rectangle {
            id: rectangle
            color: "white"
            border.color: "grey"
            border.width: 1
            radius: 5
            anchors.fill: parent
        }
        Text {
            id: label
            anchors.centerIn: parent
        }   
        MouseArea {
            id: mousearea
            anchors.fill: parent
            onClicked: container.clicked()
        }
        states:[State {
            when: mousearea.pressed
            PropertyChanges { target:rectangle; color: "lightblue"}
            }
        ]
    }
    main.qml
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    import QtQuick 1.0
     
    Rectangle {
        id: pave_num
        width: grid.width+10
        height: grid.height+80
        color: "lightgrey"
     
        signal qmlResult(string res)
     
        Grid {
            id: grid
            spacing: 5
            columns: 3
            anchors.centerIn: parent
     
            Repeater {
                model: 9
                Touche {
                    toucheTxt: 9-index
                    onClicked: aff.setText(toucheTxt)
                }
            }
            Touche {
                toucheTxt: "0"
                onClicked: aff.setText(toucheTxt)
            }
            Touche {
                toucheTxt: "C"
                onClicked: aff.clear()
            }
            Touche {
                toucheTxt:"Ok"
                onClicked: aff.valid()
            }
        }
     
        Rectangle{
          border.color : "grey"
          anchors.top : parent.top
          anchors.topMargin : 5
          anchors.horizontalCenter: parent.horizontalCenter
          id : recF
          width : grid.width
          color : "#FFF";
          height : 30
          radius : 2
          //opacity : 0.7;
          TextInput{
             id : aff
             anchors.left :parent.left
             anchors.leftMargin : 5
             anchors.top : parent.top
             anchors.topMargin : 5
             width : parent.width - 10
             font.pointSize: 13
     
             function setText(texte){
                 aff.text += texte
             }
             function getText(){
                 return aff.text
             }
             function clear(){
                 console.log("clear")
                 aff.text = ""
             }
             function valid(){
                 console.log(aff.getText())
                 qmlResult(aff.getText())
             }
          }
        }
     
        Text {
            text: "Test pavé numérique"
            font.italic: true
            anchors.bottom: parent.bottom
            anchors.bottomMargin: 5
            anchors.left: parent.left
            anchors.leftMargin: 5
            font.pixelSize: 12
        }
     
    }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MyClass *myClass = new MyClass;
        QGraphicsObject *item = view.rootObject();
     
        QObject::connect(&item, SIGNAL(qmlResult(QString)),&myClass, SLOT(cppSlot(QString)));
    myClass est déjà un pointeur sur votre MyClass. Alors le &myCLass n'est pas bon, car cela signifie un pointeur sur un pointeur. Enlevez le '&' et ça ira mieux.
    (Voir cours de C++)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut
    Ok c'est modifié mais j'ai toujours la même erreur...

  4. #4
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Idem pour item, vu sa déclaration :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    QGraphicsObject *item
    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
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 19
    Par défaut
    toujours pas ça... toujours la même erreur...

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    J'ose croire que ce n'est plus la même erreur. Veuillez copier-coller le nouveau message, s'il vous plait.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. problème avec la connection à access via vb6
    Par tacenime2005 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 09/11/2009, 23h06
  2. j'ai un problème avec ma connection DB
    Par savoir dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/12/2008, 22h21
  3. Problèmes avec la connection string
    Par zooffy dans le forum ASP.NET
    Réponses: 18
    Dernier message: 05/06/2008, 09h27
  4. Problème avec RMI connection avec JBOSS
    Par nakata77 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 29/01/2007, 23h25
  5. [ADO.NET] Problème avec ma connection à la base de données
    Par gibea00 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 07/12/2006, 20h03

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