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 :

Appel d'une fonction d'une autre classe

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut Appel d'une fonction d'une autre classe
    bonjour,

    j'ai un projet creer sous Qt ou j'ai une fenetre et je voudrais y mettre un bouton mais par le code, pas par les widget Qt.

    Donc j'ai comme fichier :
    - main.cpp
    - formPrinc.cpp
    - bouton.cpp
    - formPrinc.h
    - bouton.h

    j'ai creer une classe Cbouton pour pouvoir creer des boutons.

    voila mes codes :
    bouton.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <QWidget>
    #include <string>
     
    class Cbouton
    {
    public :
        Cbouton();
        ~Cbouton();
     
        void creerBouton(std::string *nom, int *longX, int *hautY, int *posX, int *posY, std::string *ico, std::string *infoBu);
     
    };
    bouton.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include "bouton.h"
     
    Cbouton::Cbouton()
    {
    }
     
    Cbouton::~Cbouton()
    {
    }
     
    void Cbouton::creerBouton(std::string *nom, int *longX, int *hautY, int *posX, int *posY, std::string *ico, std::string *infoBu)
    {
    }
    main.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        FormPrin fenetre ;
        fenetre.show();
     
        Cbouton test ;
        //test.creerBouton("test",10,10,10,10,"test2","test3");
     
        return app.exec();
    }
    en laissant ma ligne "test.creerBouton("test",10,10,10,10,"test2","test3");" EN COMMENTAIRE
    ca se compile bien.
    Mais des que je veux l'utiliser, ca me donne une erreur. Comment puis je faire pour appeler ma fonction creerBouton ? je pensait avoir bien fais.

    merci de votre aide

  2. #2
    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
    Citation Envoyé par sebasti1-88 Voir le message
    Mais des que je veux l'utiliser, ca me donne une erreur. Comment puis je faire pour appeler ma fonction creerBouton ? je pensait avoir bien fais.
    Quelle erreur ?
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut
    ca me met ca :
    In function 'int qMain(int, char**)':
    C:\Users\sebastien\Projet C++\RSGestion2-build-desktop\..\RSGestion2\main.cpp

    no matching function for call to 'Cbouton::creerBouton(const char [5], int, int, int, int, const char [6], const char [6])'
    C:\Users\sebastien\Projet C++\RSGestion2-build-desktop\..\RSGestion2\main.cpp

    candidates are: void Cbouton::creerBouton(std::string*, int*, int*, int*, int*, std::string*, std::string*)
    C:\Users\sebastien\Projet C++\RSGestion2-build-desktop\..\RSGestion2\bouton.h
    voila ce que ca me met lorsque je compile.

    merci

  4. #4
    Membre confirmé
    Avatar de bobti89
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Par défaut
    Ca vient du fait que tes arguments sont des pointeurs alors que tu passes à ta fonction des valeurs directes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut
    merci,

    j'ai enlever tout les pointeurs et ca fonctionne, super.

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Appel d'une fonction dans une iframe sur un autre domaine
    Par morikann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/06/2007, 18h46
  3. Réponses: 8
    Dernier message: 10/01/2007, 21h10
  4. Réponses: 3
    Dernier message: 29/04/2006, 13h02
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

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