QT Taschenrechner



  • Hallo,
    ich fange gerade an die GUI von c++ mithilfe von QT kennenzulernen. Im Tutorial beschrieben stehen folgende Zeilen.

    Taschenrechner.cpp

    #include "taschenrechner.h"
    #include "ui_taschenrechner.h"
    
    Taschenrechner::Taschenrechner(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::Taschenrechner)
    {
        ui->setupUi(this);
    
        connect(ui->Calculate, SIGNAL(clicked()), this, SLOT(addAB()));
    }
    
    Taschenrechner::~Taschenrechner()
    {
        delete ui;
    }
    void Taschenrechner::addAB(){
        double a, b;
        a = (ui->InputA->text()).toDouble();
        b = (ui->InputB->text()).toDouble();
        ui->ResultC->setText(QString("%1").arg(a+b,1,'f',4));
    }
    

    Taschenrechner.h

    #ifndef TASCHENRECHNER_H
    #define TASCHENRECHNER_H
    
    #include <QMainWindow>
    
    namespace Ui {
        class Taschenrechner;
    }
    
    class Taschenrechner : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit Taschenrechner(QWidget *parent = 0);
        ~Taschenrechner();
    
    private:
        Ui::Taschenrechner *ui;
        void addAB();
    };
    
    #endif // TASCHENRECHNER_H
    

    Mein Problem ist nun, dass das Feld für das Ergebnis nicht das Ergebnis anzeigt wie gewünscht es bleibt leider leer. Wo steckt könnte der Fehler stecken laut meiner Meinung ist alles implementiert und definiert.

    Ps. Ich habe gerade den Fehler gefunden es lag daran das die void addAB(); Funktion als Privat deklariert wurde und nicht als private slots;. Damit hat sich das Problem gelöst.



  • Also auf den ersten Blick wundert mich es, dass du in this den SLOT addAB() connectest, diesen allerdings als private und nicht als SLOT kennzeichnest. Bist du mal mit dem Debugger durch? Wird der slot wirklich aufgerufen?


Anmelden zum Antworten