QTextStream: Dezimaltrenner setzen, Locales

Verschiedenes zu Qt
Antworten
bobcat
Beiträge: 125
Registriert: 21. April 2010 14:51

QTextStream: Dezimaltrenner setzen, Locales

Beitrag von bobcat »

Hallo,

ich arbeite mit Qt 4.6 und benutze einen QTextStream, über den ich Daten in eine Datei schreibe. Ich möchte darin Dezimalzahlen so formatieren, dass ich den Dezimaltrenner (Punkt oder Komma) im Programm festlege und keinen Tausender-Trenner verwende.

Ich habe versucht, das über das Locale einzustellen, allerdings traten dabei folgende Probleme auf:

- Wenn ich ein Locale wähle, das ein Komma als Dezimaltrenner hat, dann bekomme ich den Tausender-Trenner nicht weg, obwohl ich OmitGroupSeparator benutze. Beispiel:

Code: Alles auswählen

QTextStream stream;
QLocale locale = QLocale(QLocale::German, QLocale::Germany);
locale.setNumberOptions(QLocale::OmitGroupSeparator);
stream.setLocale(locale);
- Wenn ich das Default Locale wähle (C), dann kann ich kein Komma als Dezimaltrenner einstellen.

Bei QTextStream habe ich keine Methode gefunden, die es mir erlaubt, direkt den Dezimaltrenner einzustellen. Gibt es die, und ich habe sie übersehen?
Ist irgendwo dokumentiert, welche Einstellungen zu einem Locale gehören oder kann ich das nur rausfinden, indem ich ein Locale setze und dieses abfrage?

Bin sehr dankbar für Hinweise, wie man das Problem löst!
Antworten