Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pyQt et utf8 dans les boutons

4 réponses
Avatar
Laurent Claessens
Bonjour =E0 toutes et =E0 tous


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

J'ai cr=E9=E9 un bouton dans un QtGui.QDialog avec la ligne
self.miseajourButton =3D QtGui.QPushButton("Mise =E0 jour")

Mon probl=E8me est que le "=E0" devient une cochonnerie sur le bouton.
Et c'est la m=EAme chose avec toutes les lettres accentu=E9es (=E9=E7=E0)
partout dans les titres de fen=EAtres, boutons, noms de colonnes, ...

Pourtant j'ai correctement annonc=E9 mon encodage :

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

Faire
print "=E9=E7=E0"
affiche correctement les caract=E8res dans la console.

Est-ce qu'il y a un truc sp=E9cial pour annoncer mon encodage =E0 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

4 réponses

Avatar
pp
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


Avatar
pil91
On 4 mar, 09:08, pp wrote:
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?

Avatar
Christophe
On 4 mar, 09:08, pp wrote:
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.


Avatar
Laurent Claessens
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