Widget an Methode übergeben



  • Hallo zusammen,

    ich bin ein Anfänger bei c++ und habe eine Frage bei der ich nicht weiter kommen. Ich möchte eine Methode für eine Exception Behandlung erstellen, habe aber das problem das ich es nicht schaffe mein komplettes Widget an die Methode zu übergeben. Diese soll prüfen ob die Konvertierung im Widget funktionert hat.
    Ich möchte nur wissen wie ich das Widget an die Methode übergeben kann, Danke.

    void fehlerTesten()
    {
    
        if()
        {
           throw;
        }
    }
    
    //der Slot für die Schaltfläche
    void Taschenrechner::on_pushButton_clicked()
    {
        float zahl1, zahl2;
        bool check;
    
        //die Zahlen einlesen und umwandeln
        zahl1 = ui->lineEdit->text().toFloat(&check);
        dieses Widget soll übergeben werden, mit der "&check" Prüfung
        zahl2 = ui->lineEdit_2->text().toFloat(&check);
    
        try
        {
            fehlerTesten();
        }
        catch()
        {
    
        }
    


  • void fehlerTesten(Widget& widget)
    

    Wenn das deine Frage nicht beantwortet, liegt das vielleicht daran, dass sie völlig unklar formuliert ist.



  • Ich nehme mal an wir reden von Qt da du von Slots sprichst?

    lineEdit->text() returned einen QString auf dem QString rufst du dann toFloat auf.

    toFloat nimmt einen Pointer zu einer bool variable die auf false gesetzt wird sobald die Konvertierung nicht funktioniert hat.

    siehe: Funktionssyntax:

    float QString::toFloat(bool * ok = 0) const
    

    Quote from Qt Assistant:

    "Returns the string converted to a float value.

    If a conversion error occurs, *ok is set to false; otherwise *ok is set to true. Returns 0.0 if the conversion fails."

    Das ist doch alles was du brauchst ,oder willst du irgendwas anderes prüfen?



  • Ja es geht um Qt. Was in der

    zahl1 = ui->lineEdit->text().toFloat(&check);
    

    passiert weiß ich, das macht mir kein problem.

    Es ging nur darum wie ich das Widget "ui->lineEdit->text().toFloat(&check);" an die Methode übergebe. manni66 hat mir da geholfen, Danke.



  • Pumpe schrieb:

    Ja es geht um Qt. Was in der

    zahl1 = ui->lineEdit->text().toFloat(&check);
    

    passiert weiß ich, das macht mir kein problem.

    Ich persönlich bin nur ein wenig irritiert, warum du die Konvertierung in einer externen Funktion nochmal überprüfen willst, obwohl die Funktion toFloat() das selbst macht.



  • Du hast Recht Ruvi! Es dient nur zur Übung, theoretisch ist das doppelt und eigentlich nicht notwendig. 😃


Anmelden zum Antworten