QString in Integer umwandeln



  • Hi,
    ich versuche gerade einen QString (Qt) in einen Integer umzuwandeln.

    iOperand1 = stoi(Operand1);
    

    funktioniert nicht, da sich der Präprozessorbefehl #include <string> nicht auf QString bezieht.
    Fehlermeldung: Use of undeclared identifier 'stoi'

    bei

    iOperand1 = static_cast<int>(Operand1);
    

    kommt: cannot convert QString to int without a conversion operator

    bei

    iOperand1 = static_cast<int>(Operand1*1);
    

    kommt: invalid operands to binary expression (QString and int)





  • @theAnfänger77

    funktioniert nicht, da sich der Präprozessorbefehl #include <string> nicht auf QString bezieht.

    Es funktioniert nicht, weil QString kein std::string ist . Außerdem fehlt möglicherweise noch das std:::.



  • Wenn du mit dem QT-Creator arbeitest hast du eine Hilfe, die dir alle Funktionen von QString anzeigen kann. Markiere QString im Quellcode und drücke F1 und dann scrolle mal durch die Funktionen. Hat mir schon oft geholfen.

    Relevant sind meistens nur diese hier:

    QString::toInt()
    QString::toDouble()
    QString::toStdString() ( für STL-kompatibilität )

    Umgekehrt geht das Formatieren von Zahlen so ( Zahl -> QString ):
    QString::number

    bzw. wenn du ein Komma als Dezimaltrenner willst, geht das mit QLocale
    QLocale::toString

    double zahl = 17.3333;
    QLocale Loc;
    QString myString = Loc.toString( zahl, 'f', 2 ); // Formatiert auf 2 Stellen nach dem Komma.
    


  • Hey, vielen Dank!
    Hab es mit:

    iOperand1 = Operand1.toInt();
    

    umgewandelt.


Log in to reply