IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Convertir un QString en String [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Par défaut Convertir un QString en String
    Bonjour,
    J'ai un soft avec un QTextEdit.
    J'utilise la méthode "ToPlainText" pour récupérer les données dans mon QTextEdit.
    Mon soucis est lorsque l'utilisateur saisie des caractéres spéciaux, comme les lettres avec accents par exemple.
    Je n'arrive pas à récupérer mes données au format string de python.
    Il me sort l'erreur, lorsque j'utilise "str" pour convertir mon QString en String :
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 425-427: ordinal not in range(128)

    Sachant qu'en haut de ma classe principal je met:
    # -*- coding=latin-1 -*-

    J'utilise python 2.5, et QT 4.7.7

    Merci d'avance
    Julien

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Personnellement, j'utilise

    unicode(monTextEdit.text())

    sans connaître de problème avec les caractères accentués.

    Ceci n'empêche pas d'ajouter aussi .toPlainText() bien sûr.

    La ligne # -*- coding=latin-1 -*- n'a rien à voir avec le traitement des string par le programme, à savoir ; les QString sont unicodes par défaut.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Par défaut
    Bonjour,
    Merci pour ta réponse.
    mais la méthode text me retourne l'erreur suivante:

    AttributeError: 'QTextEdit' object has no attribute 'text'

    Du coup je continu à chercher ...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par astragoth Voir le message
    Bonjour,
    Merci pour ta réponse.
    mais la méthode text me retourne l'erreur suivante:

    AttributeError: 'QTextEdit' object has no attribute 'text'

    Du coup je continu à chercher ...
    Effectivement ceci n'existe pas.
    Pour un QTextEdit, il faut passer par un cursor pour afficher le texte sélectionné (tout ou partie du texte)
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Par défaut
    J'y suis arrivé en programmant ainsi:

    str(MonTextEdit.toPlainText().toLatin1().data())

    Pour ceux qui sont intéressé.
    Merci en tout cas de vos réponses!!!

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Essaie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unicode(monTextEdit.toPlainText())
    Et si ça ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unicode(monTextEdit.toPlainText().toUtf8(), 'utf-8')
    Tyrtamos

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Au temps pour moi, j'avais une QLineEdit sous les yeux.

    C'est bien t = unicode(monTextEdit.toPlainText())

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Convertir un ArrayList en String[] ?
    Par Amerok dans le forum ASP.NET
    Réponses: 13
    Dernier message: 06/12/2005, 15h38
  2. Comment convertir un champs en string ?
    Par kalisto95 dans le forum ASP
    Réponses: 2
    Dernier message: 22/09/2005, 12h15
  3. Comment convertir un TChartTitle en string ?
    Par marsupilami34 dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2005, 14h14
  4. Réponses: 14
    Dernier message: 29/06/2005, 10h22
  5. [C#] Convertir des bytes en string
    Par sorcer1 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 03/02/2005, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo