Anzeige:
Ergebnis 1 bis 4 von 4

Thema: [C++] int nach QString casten/konvertieren, geht das?

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Ort
    Berlin
    Beiträge
    55

    [C++] int nach QString casten/konvertieren, geht das?

    Code:
    QSettings* settings;
        settings = new QSettings();
        settings -> insertSearchPath( QSettings::Unix, QDir::homeDirPath() );
        settings -> beginGroup( ".TVgrabTool" );
        int counter = settings -> readNumEntry( "/System/Zaehler" );
        delete settings;
        QString key = "/Aufnahmen/" + reinterpret_cast<std::string&>(counter) + "/";
        writeconf( key );

    also, die funktion writeconf() braucht einen QString.
    Der soll so aussehen:

    /Aufnahmen/x/

    X soll ein int sein
    Eigentlich ganz einfach dachte ich.
    kompilieren tut er das auch, nur bricht es beim testen mit Segmentation Fault ab.

    Ich hoffe ihr versteht was ich meine...

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Der reinterpret_cast ist vollkommen falsch. Mich würde ein Wenig interessieren warum du gerade den verwendest. Wenn du einen cast einsetzen wolltest, dann wäre static_cast bzw. der Konstruktor-Style cast der richtige (soll ja auch ein Konstruktor-Aufruf sein). Aber ein cast ist gar nicht nötig. Du kannst QString::number verwenden.

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.06.2004
    Ort
    Berlin
    Beiträge
    55
    Alles klar habs mit QString::number hinbekommen.

    Vielen Dank.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wenn du die Zahl in einen String einfürgen willst, also einen speziell formatierten String zusammensetzen willst, kann man da auch nette QString Methoden wie arg oder sprintf verwenden

    Code:
    int i = 5;
    QString s = "/text/%0/text";
    writeconfig(s.arg(i));
    %0 wird durch den Wert des ersten arg() Aufrufs ersetzt.

    Wenn man zB führende Nullen haben will, kann man das leicht mir sprintf machen
    Code:
    int i = 5;
    QString s;
    s.sprintf("text/%02d/text", i); // zwei Stellen, notfalls mit führenden Nullen
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •