Typumwandlung int -> zu string und umgekehrt ?



  • void MainWindow::addValuetoLine(int val){
        QString p = ui->lineEdit->text();
    
        if(p=="0")
            p = val.toString;
        else
            p.append(val.toByte());
    
        ui->lineEdit->setText(p);
    }
    

    Diese Methode sollte, wenn lineEdit eine 0 enthält, diese überschreiben, ansonsten immer den übergebenen Wert anhängen.

    Ich wüste nun gerne den Grund, warum dies zu folgender Fehlermeldung führt und wie man dies umgehen könnte.

    calc/mainwindow.cpp:52: error: request for membertoString' in val', which is of non-class typeint'

    calc/mainwindow.cpp:54: error: request for member toByte' inval', which is of non-class type int'

    mfg
    donchris



  • die methoden toString und toByte existiert für int nicht, da int keine klasse mit methoden darstellt.

    es gibt zb die methode atoi() die du verwenden kannst.

    jperl



  • if(p=="0")
        p = QString::number(val);
    

    Was du mit "toByte() bezwecken willst ist mir unklar...



  • rodler schrieb:

    if(p=="0")
        p = QString::number(val);
    

    Was du mit "toByte() bezwecken willst ist mir unklar...

    Ich will an einen bestehenden String ein Zeichen anhängen.
    x.append('z'); funktioniert daher habe ich einfach angenommen, dass x.append(irgendeinint.toByte()) auch funktioniert. Wie könnte ich das realisieren ?

    lg



  • Dann schreib ins richtige Unterforum.
    Hier geht es um die Sprache C++, nicht um irgendwelchen QString-Quatsch.

    Oder verwende std::string/std::stringstream, dann geht das ganz leicht und ohne blödes Gefrickel.


Anmelden zum Antworten