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 de fonction ambigu

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Par défaut Appel de fonction ambigu
    Bonjour,
    j'ai besoin d'aide pour mon programme, j'utilise QTDisigner pour l'interface, mon programme conssiste a lancer un chrono puis a l’arrêter, le soucis c'est que je suis très très nul en programmation. Je vous montre mon programme.
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    #include <QMainWindow>
    #include <QTimer>
    #include <QPushButton>
    #include <QLCDNumber>
    #include <QApplication>
     
    namespace Ui
    {
        class MainWindow;
    }
     
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
     
    private:
        QPushButton* Depart;
        QPushButton* Arret;
        QPushButton* Reduire;
        QLCDNumber* Chrono;
        int m_timer_value;
        QTimer* m_timer;
        bool validDepart;
        bool validArret;
        bool validReduire;
        Ui::MainWindow *ui;
     
    private slots:
        void update()
        {
            //incrémentation du comteur en secondes
            m_timer_value++;
            //affichage via le QLCDNumber
            Chrono->display(m_timer_value);
        }
     
        void on_Depart_clicked();
        void on_Arret_clicked();
        void on_Chrono_overflow();
        void on_Reduire_clicked();
     
    public:
        MainWindow()
        {
            // On met à zéro le compteur représentant le nombre de secondes
            this->m_timer_value=0;
            //Création du timer
            this->m_timer = new QTimer(this);
            connect(this->m_timer, SIGNAL(timeout()),this, SLOT(update()));
            // On applique un intervalle d'une seconde entre chaque timeoutdu timer
            this->m_timer->setInterval(1000);
            //on gere le bouton Depart et Arret
            this->validDepart=true;
            this->validArret=false;
            this->validReduire=false;
     
            // on connecte les boutons
            connect(this->Depart,SIGNAL(clicked()),this,SLOT(on_Depart_clicked()));
            connect(this->Arret,SIGNAL(clicked()),this,SLOT(on_Arret_clicked()));
            connect(this->Reduire,SIGNAL(clicked()),this,SLOT(on_Reduire_clicked()));
        }
        explicit MainWindow(QWidget *parent=0);
        ~MainWindow();
     
    };
     
    #endif // MAINWINDOW_H
    Le 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
    #include "mainwindow.h"
    #include <QApplication>
    #include <QApplication>
    #include <QDesktopWidget>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        return a.exec();
    }
    Le mainwindows.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
    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
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QDesktopWidget>
    //constructeur
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        this->showFullScreen(); //ouvre la fenetre en plein ecran, ce qui permet de ne pas afficher les boutons pour reduire, agrandir ou fermer la fenetre
    }
     
     
    void MainWindow::on_Depart_clicked()
    {
        // on desactive le bouton Depart
        validDepart=false;
        // on active les boutons Arret et Reduire
        validArret=true;
        validReduire=true;
        // lancement du chrono
        this->m_timer->start();
    }
    void MainWindow::on_Arret_clicked()
    {
        //on desactive les boutons Arret et Reduire
        validArret=false;
        validReduire=false;
        //on active le bouton Depart
        validDepart=true;
        // on arrete le chrono
        this->m_timer->stop();
    }
    void MainWindow::on_Reduire_clicked()
    {
     
    }
    void MainWindow::on_Chrono_overflow()
    {
     
    }
     
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    Quand je le lance il me met c'est erreur:
    Desktop\cyber\main.cpp:-1: In function 'int qMain(int, char**)'


    Desktop\cyber\main.cpp:9: erreur : call of overloaded 'MainWindow()' is ambiguous
    MainWindow w;
    ^
    Desktop\cyber\main.cpp:1: In file included from ..\cyber\main.cpp:1:0:

    Desktop\cyber\mainwindow.h:65: candidate: MainWindow::MainWindow(QWidget*)
    explicit MainWindow(QWidget *parent=0);
    ^

    Desktop\cyber\mainwindow.h:46: candidate: MainWindow::MainWindow()
    MainWindow()
    ^

    Je ne sais plus quoi faire, merci pour ce qui vont regarder mon problème et désoler pour les faute.
    Merci.

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut Constructeurs
    Bonsoir,

    Votre problème est simplement lié à la redéfinition du constructeur de la Mainwindow sans paramètre que vous déclarez et définissez dans Mainwindow.h, c'est ambigu avec la déclaration d'origine qui prend un seul paramètre QWidget* avec comme valeur par défaut 0...donc potentiellement sans paramètre, d'où l'ambiguité.
    Il vous suffit de copier / coller le code de votre méthode Mainwindow() dans la définition du constructeur d'origine dans le fichier Mainwindow.cpp et ce problème est résolu 😉

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Par défaut Merci!!!!!
    Merci vous me sauvez la vie.

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

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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