maxcraft-prog Index du Forum maxcraft-prog
Le nouveau forum maxcraft sur la programmation !!!
 
 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Calculatrice [Qt]

 
Poster un nouveau sujet   Répondre au sujet    maxcraft-prog Index du Forum -> Programmation -> C, C++ -> Question
Sujet précédent :: Sujet suivant  
Auteur Message
jyz93


Hors ligne

Inscrit le: 14 Oct 2008
Messages: 27
Localisation: 93

MessagePosté le: Mar 14 Oct - 21:10 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

Bon ce sujet n'est pas trop une question mais bon je savais pas ou posté si non donc je l'ai mi la... Rolling Eyes
Il s'agit d'une erreur de compilation lorsque je tente de réalisé une calculatrice en C++ (GUI) avec Qt.
Sans plus attendre voici mon code:


 main.cpp
Code:

 #include <iostream>
#include <QtGui>
#include <QApplication>
#include "fenetreMain.h"

int main(int argc, char* argv[])
{

    QApplication app(argc, argv);

    fenetreMain fenetre;
    fenetre.show();

    return app.exec();
}



fenetreMain.cpp

 
Code:

 #include <QtGui>
#include <iostream>
#include "fenetreMain.h"

fenetreMain::fenetreMain()
{

boutonmul = new QPushButton("X");
boutonadi = new QPushButton("+");
boutonsou = new QPushButton("/");
boutondiv = new QPushButton("-");
bouton1 = new QPushButton("1");
bouton2 = new QPushButton("2");
bouton3 = new QPushButton("3");
bouton4 = new QPushButton("4");
bouton5 = new QPushButton("5");
bouton6 = new QPushButton("6");
bouton7 = new QPushButton("7");
bouton8 = new QPushButton("8");
bouton9 = new QPushButton("9");
bouton0 = new QPushButton("0");
exit = new QPushButton("Quitter");
boutonres = new QPushButton("=");
resultat = new QLineEdit();
QString text = "";
ok = 1;
bol = 0;
cal = 0;
cal2 = 0;
impl = 0;
calr = 0;

QLabel *label = new QLabel("resultat:");
resultat->setText("0");
resultat->setReadOnly(true);
QGridLayout *layout = new QGridLayout;

layout->addWidget(label, 1, 0);
layout->addWidget(resultat, 1, 1, 1, 3);
layout->addWidget(boutonadi, 2, 3);
layout->addWidget(boutonsou, 3, 3);
layout->addWidget(boutondiv, 4, 3);
layout->addWidget(boutonmul, 5, 3);
layout->addWidget(bouton1, 2, 0);
layout->addWidget(bouton2, 2, 1);
layout->addWidget(bouton3, 2, 2);
layout->addWidget(bouton4, 3, 0);
layout->addWidget(bouton5, 3, 1);
layout->addWidget(bouton6, 3, 2);
layout->addWidget(bouton7, 4, 0);
layout->addWidget(bouton8, 4, 1);
layout->addWidget(bouton9, 4, 2);
layout->addWidget(bouton0, 5, 0 );
layout->addWidget(boutonres, 5, 1);
layout->addWidget(exit, 5, 2);

setLayout(layout);

QObject::connect(exit, SIGNAL(clicked()), qApp, SLOT(quit()));
QObject::connect(bouton1, SIGNAL(clicked()), this, SLOT(slot1()));
QObject::connect(bouton2, SIGNAL(clicked()), this, SLOT(slot2()));
QObject::connect(bouton3, SIGNAL(clicked()), this, SLOT(slot3()));
QObject::connect(bouton4, SIGNAL(clicked()), this, SLOT(slot4()));
QObject::connect(bouton5, SIGNAL(clicked()), this, SLOT(slot5()));
QObject::connect(bouton6, SIGNAL(clicked()), this, SLOT(slot6()));
QObject::connect(bouton7, SIGNAL(clicked()), this, SLOT(slot7()));
QObject::connect(bouton8, SIGNAL(clicked()), this, SLOT(slot8()));
QObject::connect(bouton9, SIGNAL(clicked()), this, SLOT(slot9()));
QObject::connect(bouton0, SIGNAL(clicked()), this, SLOT(slot0()));
QObject::connect(boutonadi, SIGNAL(clicked()), this, SLOT(slota()));
QObject::connect(boutonsou, SIGNAL(clicked()), this, SLOT(slots()));
QObject::connect(boutondiv, SIGNAL(clicked()), this, SLOT(slotd()));
QObject::connect(boutonmul, SIGNAL(clicked()), this, SLOT(slotm()));
QObject::connect(boutonres, SIGNAL(clicked()), this, SLOT(slote()));


setWindowTitle("Calculatrice");
setWindowIcon(QIcon("calc.ico"));
}

void fenetreMain::slot1()
    {

    text += "1";
    resultat->setText(text);

    }

void fenetreMain::slot2()
    {

    text += "2";
    resultat->setText(text);

    }

void fenetreMain::slot3()
    {

    text += "3";
    resultat->setText(text);

    }

void fenetreMain::slot4()
    {

    text += "4";
    resultat->setText(text);

    }

void fenetreMain::slot5()
    {

    text += "5";
    resultat->setText(text);

    }

void fenetreMain::slot6()
    {

    text += "6";
    resultat->setText(text);

    }

void fenetreMain::slot7()
    {

    text += "7";
    resultat->setText(text);

    }

void fenetreMain::slot8()
    {

    text += "8";
    resultat->setText(text);

    }

void fenetreMain::slot9()
    {

    text += "9";
    resultat->setText(text);

    }

void fenetreMain::slot0()
    {

    text += "0";
    resultat->setText(text);

    }

void fenetreMain::slota()
    {
    resultat->setText("+");
    bol = 1;

        if (impl == 0)
        {
            cal = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

        if (impl == 1)
        {
            cal2 = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

    }

void fenetreMain::slots()
    {
    resultat->setText("-");
    bol = 2;

        if (impl == 0)
        {
            cal = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

        if (impl == 1)
        {
            cal2 = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

    }

void fenetreMain::slotm()
    {
    resultat->setText("X");
    bol = 3;

        if (impl == 0)
        {
            cal = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

        if (impl == 1)
        {
            cal2 = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

    }

void fenetreMain::slotd()
    {
    resultat->setText("/");
    bol = 4;

        if (impl == 0)
        {
            cal = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

        if (impl == 1)
        {
            cal2 = QString(text).toDouble(&ok);
            text = "";
            impl++;
        }

    }

void fenetreMain::slote()
    {
    resultat->setText("/");

        if (bol == 1)
        {
            calr = cal + cal2;
            text = QString::number(calr);
            resultat->setText(text);
            text = "";
        }

        if (bol == 2)
        {
            calr = cal - cal2;
            text = QString::number(calr);
            resultat->setText(text);
            text = "";
        }

        if (bol == 3)
        {
            calr = cal * cal2;
            text = QString::number(calr);
            resultat->setText(text);
            text = "";
        }

        if (bol == 4)
        {
            calr = cal / cal2;
            text = QString::number(calr);
            resultat->setText(text);
            text = "";
        }
    }



fenetreMain.h

 
Code:

 #ifndef FENETREMAIN_H_INCLUDED
#define FENETREMAIN_H_INCLUDED
#include <QtGui>
#include <iostream>

class fenetreMain : public QWidget
{
    Q_OBJECT

    public:
    fenetreMain();

    private slots:
    void slot1();
    void slot2();
    void slot3();
    void slot4();
    void slot5();
    void slot6();
    void slot7();
    void slot8();
    void slot9();
    void slot0();
    void slotm();
    void slota();
    void slots();
    void slotd();
    void slote();

    private:
    QPushButton *boutonmul;
    QPushButton *boutonadi;
    QPushButton *boutondiv;
    QPushButton *boutonsou;
    QPushButton *bouton1;
    QPushButton *bouton2;
    QPushButton *bouton3;
    QPushButton *bouton4;
    QPushButton *bouton5;
    QPushButton *bouton6;
    QPushButton *bouton7;
    QPushButton *bouton8;
    QPushButton *bouton9;
    QPushButton *bouton0;
    QPushButton *boutonres;
    QPushButton *exit;
    QLineEdit *resultat;
    QString text;
    long bol;
    double cal;
    double cal2;
    double calr;
    bool ok;
    long impl;

};

#endif



 
Et enfin la terrible erreur que m'affiche le compilateur ! Evil or Very Mad

 


Pour un petit aperçut de son interface :



Merci d'avance pour votre aide,
_________________


Revenir en haut
Publicité






MessagePosté le: Mar 14 Oct - 21:10 (2008)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Taruf


Hors ligne

Inscrit le: 15 Oct 2008
Messages: 27

MessagePosté le: Jeu 16 Oct - 21:44 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

ta plus qu'a te pendre

Revenir en haut
jyz93


Hors ligne

Inscrit le: 14 Oct 2008
Messages: 27
Localisation: 93

MessagePosté le: Ven 17 Oct - 12:30 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

C'est bon j'ai trouvé l'erreur qui empêche de compilé, c'est parce qu'on ne peut pas appelé un slot "slots".
Mais maintenant sa m'affiche n'importe quoi quand j'essaie de faire un calcul :/
_________________


Revenir en haut
Taruf


Hors ligne

Inscrit le: 15 Oct 2008
Messages: 27

MessagePosté le: Ven 17 Oct - 17:32 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

Du genre ?

Revenir en haut
jyz93


Hors ligne

Inscrit le: 14 Oct 2008
Messages: 27
Localisation: 93

MessagePosté le: Ven 17 Oct - 18:16 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

ba sa m'affiche le resultat du premier nombre que je rentre pour faire l'opération !

Edit: Sa doit etre quand je tente de convertir un Qstring en double que sa merde nan ?
_________________


Revenir en haut
Taruf


Hors ligne

Inscrit le: 15 Oct 2008
Messages: 27

MessagePosté le: Ven 17 Oct - 23:42 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

J'en sais rien je fais pas de C++ Mr. Green

Revenir en haut
nementon


Hors ligne

Inscrit le: 02 Oct 2008
Messages: 17
Localisation: oO²

MessagePosté le: Sam 25 Oct - 12:32 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

Looool Taruf, tu est un drogwué !

Sinon, (vus que le post date un peu =p), Ta trouver le probleme ? (oui oui javou, il est midi j'ai faim et j'ai la flemme de voir si je trouve quelque chose dans ton code ^^)


Revenir en haut
Taruf


Hors ligne

Inscrit le: 15 Oct 2008
Messages: 27

MessagePosté le: Sam 25 Oct - 12:34 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

haha

Revenir en haut
jyz93


Hors ligne

Inscrit le: 14 Oct 2008
Messages: 27
Localisation: 93

MessagePosté le: Sam 25 Oct - 12:35 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

nan je cherche toujours malheureusement Sad je crois je vais tourné la page sur ce projet si sa me saoul trop  Rolling Eyes
_________________


Revenir en haut
nementon


Hors ligne

Inscrit le: 02 Oct 2008
Messages: 17
Localisation: oO²

MessagePosté le: Sam 25 Oct - 13:13 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

oO, j'y jeterai un oeil voir si je trouve quelque chose alors.

Nan mais Ô, c'est une petite calculatrice qui vas nous résister !


Revenir en haut
Yukiz


Hors ligne

Inscrit le: 11 Nov 2008
Messages: 9
Localisation: Dans ton reseau

MessagePosté le: Mar 11 Nov - 19:33 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

Je ne programme pas avec QT mais j'peux te dire que la programmation c'est super chiant une simple histoire de variable et ca retourne le logiciel.
Je suis en train de travailler sur un logiciel d'encription que j'ai codé moi même. J'ai galéré toute une nuit a cause de DEUX variables. Dis toi bien que j'avais les nerfs. Tu dois avoir une histoire de ce genre à trouver et ca doit rouler!
_________________


Revenir en haut
Visiter le site web du posteur MSN GTalk/Jabber
jyz93


Hors ligne

Inscrit le: 14 Oct 2008
Messages: 27
Localisation: 93

MessagePosté le: Sam 29 Nov - 14:52 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

C'est bon j'ai trouvé pourquoi sa ne fonctionne pas.

En faisant le programme de tête, sur 4+3=, on a:
* départ impl = 0, cal = 0, cal = 0
* 4 -> text="4"
* + -> cal = 4, bol = 1, impl = 1, text = ""
* 3 -> text="3"
* = -> calr = cal + cal2 = 4 (vu que 3 est pas ecnore dans cal2)

En gros le coup des if (impl == 1) devrait être dans le slot du égal (vu que les opérateurs ne terminent pas les calculs précédents), sinon faut il faut tapé "4+3+=" pour faire une addition.
_________________


Revenir en haut
Yukiz


Hors ligne

Inscrit le: 11 Nov 2008
Messages: 9
Localisation: Dans ton reseau

MessagePosté le: Mar 16 Déc - 22:06 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

Ok Razz Tu voies, une histoire toute bete...
_________________


Revenir en haut
Visiter le site web du posteur MSN GTalk/Jabber
jyz93


Hors ligne

Inscrit le: 14 Oct 2008
Messages: 27
Localisation: 93

MessagePosté le: Mer 17 Déc - 15:28 (2008)    Sujet du message: Calculatrice [Qt] Répondre en citant

ouai, et j'ai galéré pour trouvé !
_________________


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 04:02 (2017)    Sujet du message: Calculatrice [Qt]

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    maxcraft-prog Index du Forum -> Programmation -> C, C++ -> Question Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers: