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

Tkinter Python Discussion :

widget Text: problème d'encodage.


Sujet :

Tkinter Python

  1. #1
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut widget Text: problème d'encodage.
    Est ce que quelqu'un sait si il est possible et comment dans ce cas de changer la type par défaut du widget Text de Tkinter en str.
    car un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    from Tkinter import *
     
    a=None
    b=str()
    def type_test() :
      global a, b
      a=entrer.get(0.0, END)
      print type(a)
      b=str(a)
      return b
     
    fenetre=Tk()
    entrer= Text(fenetre, width=25)
    bou= Button(fenetre, command=type_test)
    entrer.pack()
    bout.pack()
    mainloop()
    ne prend en charge que les charactères ASCII comme methode de conversion pourtant le type str permet d'afficher toutes les touches du clavier.
    Merci de vos réponses.

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Citation Envoyé par Luke spywoker Voir le message
    ne prend en charge que les charactères ASCII comme methode de conversion pourtant le type str permet d'afficher toutes les touches du clavier.
    Est ce à dire que le widget n'affiche pas tous les caractères ?
    Ou c'est juste avec get que tu souhaite avoir un str ? Dans ce cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    import Tkinter
     
    class MyText(Tkinter.Text):
        def get(self, index1, index2=None):
            return unicode(self.tk.call(self._w, 'get', index1, index2)).encode(self.tk.call("encoding", "system"))
     
    def type_test() :
      print type(entrer.get(0.0, Tkinter.END))
      print entrer.get(0.0, Tkinter.END)
     
    fenetre=Tkinter.Tk()
    #fenetre.tk.call("encoding", "system", "utf-8")
    entrer= MyText(fenetre, width=25)
    entrer.pack()
    Tkinter.Button(fenetre, command=type_test).pack()
    fenetre.mainloop()
    Par contre pour changer directement le type du get de tk je ne sait pas faire...

    J'ai sans doute mal compris la question.

  3. #3
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    En faite j'ai créer une application en amont(avant l'interface graphique) qui traite tous les caractères du clavier, basé sur le type string, avec traitement spécial pour les caractères non ASCII et je désire maintenant récolter les données entrées avec le get du widget Text qui est du type unicode et de les
    transformer en string avec caractères non ASCII.

    Il faudrait que j'obtienne dans une variable de type string des caractères non ASCII ce qui est possible pour l'affichage et pour éventuellemnt pour le traitement plus difficilement.

    J'ai pas très bien compris la réponse de PauseKawa en ce qui concerne l'encodage du widget Text:

    encode(self.tk.call("encoding", "system"))

    Merci de vos réponses.

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Citation Envoyé par Luke spywoker Voir le message
    J'ai pas très bien compris la réponse de PauseKawa en ce qui concerne l'encodage du widget Text:

    encode(self.tk.call("encoding", "system"))
    C'était juste pour éviter un import sys puisque Tk est disponible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import Tkinter
    import sys
     
    sys_encode=sys.stdout.encoding
     
    class MyText(Tkinter.Text):
        def get(self, index1, index2=None):
            return unicode(self.tk.call(self._w, 'get', index1, index2)).encode(sys_encode)
     
    def type_test() :
      print type(entrer.get(0.0, Tkinter.END))
      print entrer.get(0.0, Tkinter.END)
     
    fenetre=Tkinter.Tk()
    entrer= MyText(fenetre, width=25)
    entrer.pack()
    Tkinter.Button(fenetre, command=type_test).pack()
    fenetre.mainloop()

  5. #5
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    J'ai compris cette fois çi et je t'en remercie...
    Mais l'interpréteur que j'utilise ne prend pas en charge cette variable du module sys, peut etre s'en sert il pour sa sortie a lui... mais j'ai connait d'autres interpréteur que je peut utiliser.
    Mais l'idéal serai quand meme de savoir si un type par défaut est configurable pour Tkinter.
    Merci de vos réponses passé elles m'ont aider et peut etre pour la réponse a la question initiale si quelqu'un sait...

  6. #6
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Grand Merci a pauseKawa qui m'a sortie la sortie standart du module sys qui règle le problème de configuration du widget Text et me sort du pétrin...

    Mais si quelqu'un peut répondre a la question initiale qui est :

    Est-ce-que le type par défaut est configurable pour le widget Text Tkinter ou tout autre widget d'ailleurs ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/07/2012, 15h40
  2. Problème d'encodage de texte
    Par cecile38 dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 13/01/2012, 09h50
  3. Réponses: 24
    Dernier message: 06/02/2008, 13h59
  4. Problème d'encodage de texte
    Par Grantoumaigr dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/09/2007, 15h13
  5. problème d'attribution d'un texte dans un widget text
    Par polo42 dans le forum Général Python
    Réponses: 5
    Dernier message: 11/07/2007, 08h34

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