2017-08-14 1 views
3

J'ai un QDateEdit qui s'appelle date. Peu importe ce que je fais, je ne suis pas en mesure de le faire afficher les mois en anglais, il les affiche toujours dans mon lieu actuel.QDateEdit.date(). ToString ("MMMM jj, aaaa") n'affiche pas les mois en anglais

J'ai déjà essayé:

self.ui.date.setLocale(QtCore.QLocale(
    QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) 

self.ui.date.calendarWidget().setLocale(QtCore.QLocale(
    QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) 

En faisant cela, le calendarWidget qui apparaît-quand je clique sur le widget changé en anglais. Cependant, si je le fais:

print ui.date.date().toString("MMMM dd, yyyy") 

Je reçois toujours les mois en portugais au lieu de l'anglais. J'ai également essayé de changer les paramètres régionaux avec le module locale de python mais cela n'a donné aucun résultat.

+0

L'utilisation de 'setLocale' va changer la façon dont la date est * affichée * dans' QDateEdit'. – ekhumoro

Répondre

3

Utilisez QLocale.toString méthode

par exemple:

print(QLocale(QLocale.English, QLocale.UnitedStates).toString(self.ui.date.date(), "MMMM dd, yyyy"))` 

QDate est une représentation locale indépendante de la date. Vous devez spécifier les paramètres régionaux lors du formatage ...

+0

Le problème est que je ne veux pas avoir l'heure actuelle. Au lieu de cela, j'essaie de le lire à partir d'un widget QDataEdit, de sorte que l'utilisateur peut insérer les données par lui-même – Eduardo

+1

@Eduardo. Pourquoi essayez-vous de manipuler les chaînes de date * locales-dépendantes *? Qu'essayez-vous de faire? – ekhumoro

+0

@ekhumoro c'est un logiciel pour enregistrer le processus de fabrication d'une ligne de production laser. Donc, fondamentalement, il s'agit d'une interface graphique qui, lorsque l'utilisateur va effectuer un processus, par exemple, fixer une lentille sur le laser, il doit ajouter des mesures et des informations concernant le processus dans le logiciel, par exemple. Date, heure de début, heure de fin, puissance optique, etc. Il insère donc la date dans un QDateEdit. Le problème est que le rapport est fait en anglais et que les ordinateurs ici ont des paramètres régionaux différents dans les paramètres de leur système d'exploitation. Je voudrais qu'il soit compatible avec tous les paramètres de l'ordinateur – Eduardo