pyQt et utf8 dans les boutons

Le
Laurent Claessens
Bonjour à toutes et à tous


Je suis débutant en Qt, et pour l'instant je me contente de
recopier et adapter des exemples trouvées dans la documentation.

J'ai créé un bouton dans un QtGui.QDialog avec la ligne
self.miseajourButton = QtGui.QPushButton("Mise à jour")

Mon problème est que le "à" devient une cochonnerie sur le bouton.
Et c'est la même chose avec toutes les lettres accentuées (éçà)
partout dans les titres de fenêtres, boutons, noms de colonnes,

Pourtant j'ai correctement annoncé mon encodage :

#! /usr/bin/python
# -*- coding: utf8 -*-

Faire
print "éçà"
affiche correctement les caractères dans la console.

Est-ce qu'il y a un truc spécial pour annoncer mon encodage à Qt ?

J'utilise pyQt4 sous Ubuntu Gutsy.

Je ferais bien un RTFM, mais le Fabuleux Manuel est toujours en
anglais et n'aborde donc pas la question :(

Une piste ?
Merci et bonne semaine
Laurent
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
pp
Le #1204479
Bonjour

il faut ajouter un "u" :
self.miseajourButton = QtGui.QPushButton(u"Mise à jour")
et ça marche

O-
Pascal


Bonjour à toutes et à tous


Je suis débutant en Qt, et pour l'instant je me contente de
recopier et adapter des exemples trouvées dans la documentation.

J'ai créé un bouton dans un QtGui.QDialog avec la ligne
self.miseajourButton = QtGui.QPushButton("Mise à jour")

Mon problème est que le "à" devient une cochonnerie sur le bouton.
Et c'est la même chose avec toutes les lettres accentuées (éçà)
partout dans les titres de fenêtres, boutons, noms de colonnes, ...

Pourtant j'ai correctement annoncé mon encodage :

#! /usr/bin/python
# -*- coding: utf8 -*-

Faire
print "éçà"
affiche correctement les caractères dans la console.

Est-ce qu'il y a un truc spécial pour annoncer mon encodage à Qt ?

J'utilise pyQt4 sous Ubuntu Gutsy.

Je ferais bien un RTFM, mais le Fabuleux Manuel est toujours en
anglais et n'aborde donc pas la question :(

Une piste ?
Merci et bonne semaine
Laurent


pil91
Le #1205767
On 4 mar, 09:08, pp
Bonjour

il faut ajouter un "u" :
self.miseajourButton = QtGui.QPushButton(u"Mise à jour")
et ça marche

O-
Pascal
-----------

Bonjour, J'ai fait une essai dans un exemple fourni avec PYQT4
PyQt4examplesdialogsstandarddialogs.pyw

J'ai modifié ces lignes avec des caractères accentués
def setInteger(self):
i, ok = QtGui.QInputDialog.getInteger(self,
self.tr("QInputDialog.getInteger()"),
self.tr(u"Caractères
accentués,: "), 25, 0, 100, 1)
Essayé avec différends coding
#-*- coding:Utf-8 -*-
# -*- coding: cp1252 -*-
etc ...

Sans préfixer la chaine par 'u', j'ai des caractères exotiques, avec
je n'ai aucun affichage du tout?

Une idée svp?

Christophe
Le #1206211
On 4 mar, 09:08, pp
Bonjour

il faut ajouter un "u" :
self.miseajourButton = QtGui.QPushButton(u"Mise à jour")
et ça marche

O-
Pascal
-----------

Bonjour, J'ai fait une essai dans un exemple fourni avec PYQT4
PyQt4examplesdialogsstandarddialogs.pyw

J'ai modifié ces lignes avec des caractères accentués
def setInteger(self):
i, ok = QtGui.QInputDialog.getInteger(self,
self.tr("QInputDialog.getInteger()"),
self.tr(u"Caractères
accentués,: "), 25, 0, 100, 1)
Essayé avec différends coding
#-*- coding:Utf-8 -*-
# -*- coding: cp1252 -*-
etc ...

Sans préfixer la chaine par 'u', j'ai des caractères exotiques, avec
je n'ai aucun affichage du tout?

Une idée svp?


Tu a déclaré ton fichier comme étant en utf-8 (et comme cp1252 ce dont
je doute que ce soit le bon encoding), mais ton fichier source lui même
n'est probablement pas dans cet encoding. C'est un problème du coté de
ton éditeur texte. Vérifie bien que celui-ci est configuré pour
enregistrer des fichiers au format utf8 ou alors et remet la bonne
ligne d'encoding au début.

Il est très important de comprendre que la ligne coding au début des
fichiers .py sert exclusivement à renseigner l'interpreteur Python dans
quel encoding l'éditeur texte utilisé pour écrire le fichier .py était
configuré ! Il ne suffit pas de mettre utf-8 pour que magiquement le
fichier soit au format utf-8, sauf à utiliser un éditeur texte très
intelligent qui connait le python et le sens de cette ligne.


Laurent Claessens
Le #1216642
Bonjour

il faut ajouter un "u" :
self.miseajourButton = QtGui.QPushButton(u"Mise à jour")
et ça marche


Youpie, ça marche ! Y'a rien à faire, ça donne tout de suite un aspect
plus sérieux à mon interface.
Merci

Laurent

O-
Pascal


Publicité
Poster une réponse
Anonyme