Problem mit QString und float

Alles rund um die Programmierung mit Qt
Walddruide
Beiträge: 3
Registriert: 15. November 2009 12:50

Problem mit QString und float

Beitrag von Walddruide »

Hallo zusammen,
ich habe eine Funktion geschrieben, die als Rückgabewert float hat.
Nun möchte ich den Rückgabewert in einem QLabel anzeigen.
Mit der Funktion setText kann man ja den Text des Labels festlegen.
Aber ich schaffe es einfach nicht den float Wert in einen QString zu bekommen.
Implizietes Konvertiern funktioniert nicht und mit einem normalen C++ StringStream bekomme ich den Wet, falls in einen Standart C++ String, aber nicht in einen QString. Ein QString den ich mit der Funktion fromStdString den normalen C++ String zuweise, ist anschließend leer.

Ich hoffe ihr könnt mir helfen.

Schon 'mal danke im Voraus.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Schau dir mal in der Doku vom QString die statischen Methoden an ;-) Da ist was für dich dabei!
Walddruide
Beiträge: 3
Registriert: 15. November 2009 12:50

Beitrag von Walddruide »

Ich hab jetzt die statische Funktion number gefunden, funktioniert aber immer noch nicht. Der String ist jedes mal leer.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Walddruide hat geschrieben:Ich hab jetzt die statische Funktion number gefunden, funktioniert aber immer noch nicht. Der String ist jedes mal leer.
Dann machst Du was falsch würde ich sagen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

Problem mit QString und float

Beitrag von sowas »

ich vermute mit foalt müsste es genau so gehen wie ich es mit integer gemacht habe.
die Konvertierung macht QString automatisch.

int vvar;
vvar =vvar *1+1; // war ein zähler
QString idnr ="";
idnr.append(QString("%1").arg(vvar));
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

mir schauerts grad ;-)
Ja so geht es aber wenns nur ne Zahl zu String is dann einfach ::number verwenden.

Ohne Code können wir allerdings nur raten wo der Fehler ist.
Ich sag ml Zeile 43
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

Schau Dir mal diese Funktionen an:
QString QString::number ( double n, char format = 'g', int precision = 6 ) [static]
QString & QString::setNum ( float n, char format = 'g', int precision = 6 )
Linux, das längste Text-Adventure aller Zeiten
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

FlowPX2 hat geschrieben: QVariant tmp;
Na klar.
Man kann auch über Hamburg nach Rom fahren.
:shock: :? :shock:
Linux, das längste Text-Adventure aller Zeiten
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

FlowPX2 hat geschrieben: Sprich irgendwo wird der QVariant schon sein Einsatzgebiet haben :wink:
Und natürlich sollte man sich nach besseren Methoden immer umschauen.
Logisch hat auch QVariant sein Einsatzgebiet.
Aber hier ist bekannt, dass ein float in einen QString umgewandelt werden soll.

Und wie man auch erkennen kann, handelt es sich um einen Qt-Einsteiger.
Diesen sollte man nicht verwirren, indem man ihm unpraktische Konstrukte um die Ohren haut, die zudem nicht mal getestet sind.
Linux, das längste Text-Adventure aller Zeiten
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Was daran so schwer?
Wenn ich eine Zahl habe nehm ich ::number. Warum soll ich mir sinnlos variablen holen um hin und herzu kopieren.

Da ist einfach nur ein Fehler irgendwo!

Code: Alles auswählen

retString = QString::number( static_cast<double>(size /1000000),'g', 4) + " MB";
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag von russkij »

ich sehe natürlich nicht den ganzen code, aber der ausschnitt ist definitiv falsch:

int vvar; --> uninitialisiert
vvar =vvar *1+1; // und uninitialisiert verwenden?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Recht hast du-aber klärt das Problem nicht ;-)
Ich meinees steht zwar murks drin aber ein +1 sollte ja im schlimmsten Fall nen überlauf bringen...und da er keine unsigned's hat erklärt mir das auch nicht den effekt
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

Problem mit QString und float

Beitrag von sowas »

Ich habe diese rege Reaktion nicht erwartet, ich antwortete weil niemand einen Tipp gab.
Mein Beispiel ist ein Teil einer Funktion, und zwar
ich lese eine Textdatei ein,
suche in jeder Zeile nach einer Ziffer
wandele sie in integer um
falls nötig erhöhe den Wert
zum Schluss erstelle ich eine neue Textdatei.
Vll. war das kein guter Vorschlag.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

war schon ok ;-)

aber du hast recht viel weggelassen was zu spekulation führt-und missverständnissen
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag von russkij »

AuE hat geschrieben:war schon ok ;-)

aber du hast recht viel weggelassen was zu spekulation führt-und missverständnissen
und ich habe auch noch den "sowas" mit dem fragesteller verwechselt :-)
Antworten