Mit der Programmzeile:
QString locale = QLocale::system().name();
erhalte ich locale = “de_DE”, mein Programm erkennt also richtig, dass das System auf deutsch eingestellt ist.
Der Wochentag so ermittelt:
QString day(QDateTime dateTime) {
int day = dateTime.date().dayOfWeek();
QLocale l;
return l.dayName(day,QLocale::ShortFormat);
}
ergibt aber trotzdem die Wochentagsangabe auf englisch.
Irgendwo fand ich den Hinweis: setze QLocale::setDefault(). Das habe ich zunächst so versucht:
QLocale::setDefault(QLocale::system());
der Wochntag war immer noch auf englisch.
Erst mit
QLocale::setDefault(QLocale(QLocale::system().name()));
war der Wochentag auf deutsch.
Was ist der Sinn bei dem Unterschied von “QLocale::system()” und “QLocale(QLocale::system().name())”? Und warum muss ich QLocale::setDefault() setzen, wenn doch die Systemeinstellung richtig erkannt wurde?
Qt – Version 4.8.1 auf Ubuntu 12.04
Gruß Sig
↧