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 :

Appeler une fonction depuis une autre classe

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut Appeler une fonction depuis une autre classe
    Bonjour, je viens vous voir car j'ai un problème que je n'arrive pas à résoudre...

    Je veux envoyer un caractère sur le port COM vers une carte mais lorsque j'appuis sur le bouton d'envoi mon soft plante dès que je rentre dans la fonction "putChar(caract)". Je précise que mon bouton se trouve sur une autre fenetre que le mainwindow

    Voilà ma fonction dans le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void MainWindow::sendChar(char caract)
    {
        if (serial)
        {
            qDebug() << caract;
            serial->putChar(caract);
        }
    }
    le keywindow.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void KeyWindow::on_buttonMoins_clicked()
    {
        MainWindow *mainWin = new MainWindow;
        char caract = '-';
        mainWin->sendChar(caract);
    }
    Quand j'appel la fonction depuis le mainwindow sa marche nikel.

    Merci pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Par défaut réponse
    Salut,

    pour pouvoir t'aider, il faut que tu nous donne plus de code car comme ça, on pourra pas bien voir comment comment t'as déclaré tes attributs et tes variables.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Bien sûr !

    le mainwindows.h
    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
     
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    #include <QMainWindow>
    #include "keywindow.h"
    #include <QtSerialPort/QSerialPort>
    #include <QTimer>
    #include <QTime>
     
    namespace Ui {
    class MainWindow;
    }
     
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
     
     
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
     
        QSerialPort *serial;
        void sendChar(char caract);
     
    private slots:
        void boutonConnect();
        void serialReceived();
        void ecrireTableau();
        void listePort();
     
        void on_checkClavier_clicked();
     
    private:
        Ui::MainWindow *ui;
     
        QTimer *timerTrame;
        QTimer *timerTableau;
        QString adresseModule, tempModule;
        KeyWindow *fenetreClavier;
        QString trame;
    };
     
     
    #endif // MAINWINDOW_H
    le keywindow.h
    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
     
    #ifndef KEYWINDOW_H
    #define KEYWINDOW_H
     
    #include <QMainWindow>
     
    namespace Ui {
    class KeyWindow;
    }
     
    class KeyWindow : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit KeyWindow(QWidget *parent = 0);
        ~KeyWindow();
     
    private slots:
        void on_buttonMoins_clicked();
     
    private:
        Ui::KeyWindow *ui;
    };
     
    #endif // KEYWINDOW_H

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Par défaut reponse
    tu pourras envoyer le code (ou tu clique sur le bouton)

    merci!

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Explique toi j'ai envoyer le code nécessaire j'ai pas besoins d'envoyer plus. Il y a les headers et les fonctions des fichiers sources concernés.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Bon bah j'ai réussi en créant un signal depuis mon keywindow.cpp et en le connectant au slot depuis le mainwindows.cpp et ça fonctionne.

+ 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. Appeller une fonction depuis un autre site
    Par ProgVal dans le forum Langage
    Réponses: 3
    Dernier message: 03/12/2008, 18h01
  3. getattr() ? Appel d'une fonction depuis une fonction
    Par frites.saucisse dans le forum Général Python
    Réponses: 8
    Dernier message: 10/10/2008, 14h21
  4. Appel de fonction depuis une classe fille
    Par lhpp dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 26/04/2006, 22h02
  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