Probleme mit QString bzw. Zeichen im QString



  • Ich verstehe nicht ganz, wieso SeppJ das Thema verschoben hat, weil es kein Problem ist, was Qt sondern was C++ betrifft:

    "FEHLER! " + "Exit-Status: "
    

    geht nicht, da char[] keinen binären operator+ besitzt - das sagt dir auch die fehlermeldung schon 😉
    Gibt mehrere Möglichkeiten zur Abhilfe:

    1. "FEHLER! Exit-Status: "
    2. QString("FEHLER! ") + "Exit-Status: "
    3. const QString error = "FEHLER!"; const QString exit_state = "Exit-Status"; error + ' ' + exit_state
    4. stringstream ss; ss << "FEHLER! " << "Exit-Status: "
      (3 + 4 zusammen)
    5. wie 4) mit std::string, in der hoffnung, dass der compiler dann besser optimieren kann
      etc.

    bb



  • QString Text = QString( "FEHLER! Exit-Status: %1 Error-Code: %2 blockMeshDict File konnte nicht erstellt werden!" ).arg( Status ).arg(Prozess.error());
    

    Wenn man mit Qt programmieren möchte, sollte man allerdings C++ beherrschen. Die Fragestellung deutet nicht darauf hin ...



  • Danke Männers,

    hab von unskilled die Lösungen 2) und 3) kombiniert.

    @manni: hier und da hat man halt seine Lücken :D.

    An anderen Stellen hatte ich auch zB. damit

    QString Befehl = "f6 " + Pfad  + "/eo.w6";
    

    keine Probleme beim Kompilieren.

    Gruß



  • Chaka schrieb:

    An anderen Stellen hatte ich auch zB. damit

    QString Befehl = "f6 " + Pfad  + "/eo.w6";
    

    keine Probleme beim Kompilieren.

    Ist ja auch klar. Es gibt ja auch

    QString operator+(char const*, QString const&);
    QString operator+(QString const&, char const*);
    

    aber eben kein

    QString operator+(char const*, char const*);
    

    Wäre ja mehr als ungeschickt...



  • Hi,

    vielleicht könnt ihr mir nochmal weiterhelfen. Mir ist gerade noch etwas aufgefallen.

    Den genannten QString schreibe ich anschließend in einen QtextBrowser mit

    Dialog->textBrowserMeldung -> setText(Text);
    

    Problem ist, dass die Variable "Status" garnicht und anstatt von Prozess.error() nur ein kleines Quadrat angezeigt werden. Was muss ich denn da ändern?



  • Chaka schrieb:

    Problem ist, dass die Variable "Status" garnicht und anstatt von Prozess.error() nur ein kleines Quadrat angezeigt werden. Was muss ich denn da ändern?

    Den String richtig zusammenbauen.



  • Hmmm, kann mir jemand vielleicht nen Link geben wo ich nachschauen kann wie ich den/einen "String richtig zusammenbaue" ? 🙂



  • Chaka schrieb:

    Hmmm, kann mir jemand vielleicht nen Link geben wo ich nachschauen kann wie ich den/einen "String richtig zusammenbaue" ? 🙂

    http://www.c-plusplus.net/forum/p2198942#2198942



  • Damit gehts ja wirklich einwandfrei. Dankeschön 🙂



  • arghonaut schrieb:

    Chaka schrieb:

    An anderen Stellen hatte ich auch zB. damit

    QString Befehl = "f6 " + Pfad  + "/eo.w6";
    

    keine Probleme beim Kompilieren.

    Ist ja auch klar. Es gibt ja auch

    QString operator+(char const*, QString const&);
    QString operator+(QString const&, char const*);
    

    aber eben kein

    QString operator+(char const*, char const*);
    

    Wäre ja mehr als ungeschickt...

    Auch wenn der Thread schon älter ist. Mich interessiert, warum es mehr als ungeschickt wäre

    QString operator+(char const*, char const*);
    

    zu implementieren. Ich fände diese Operation sehr hilfreich. Ist das zu unperformant oder so? Hoffe noch auf eine Antwort.

    Mit freundlichen Grüßen,
    DarkBug



  • Ist dies

    QString Befehl = "Hello" + _(" ") + "World";
    

    im Gegensatz zu dem

    QString Befehl = "Hello" + QString(" ") + "World";
    

    unperformanter?


Anmelden zum Antworten