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

wxPython Discussion :

[wx 3.0.3 - 4.0.0][RichTextCtrl] exporter et importer du texte au format xml [Python 3.X]


Sujet :

wxPython

  1. #1
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut [wx 3.0.3 - 4.0.0][RichTextCtrl] exporter et importer du texte au format xml
    Bonjour,

    Je suis en train de migrer une application développée au départ en Python 2 et wxPython 3.0.2 vers Python 3 et wxPython 3.0.3 (voire 4.0.0). La dernière chose où je coince est l'utilisation du format XML dans des RichTextCtrl pour conserver la mise en page

    Pour la sauvegarde, en python 2, j'écrivais ceci (où rtc est un RichTextCtrl et txt une chaîne de caractères enregistrée ensuite dans une base de données)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import cStringIO as io
     
    handler = wx.richtext.RichTextXMLHandler()
    stream = io.StringIO()
    handler.SaveStream(rtc.GetBuffer(), stream)
    stream.seek(0)
    txt = stream.read()
    Pour la lecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    stream = io.StringIO()
    handler = wx.richtext.RichTextXMLHandler()
    buffer = rtc.GetBuffer()
    buffer.AddHandler(handler)
    stream.write(txt)
    stream.seek(0)
    handler.LoadStream(buffer, stream)
    avec wxPython 3.0.3, cette méthode ne fonctionne pas comme RichTextXMLHandler n'a plus de méthode LoadStream et SaveStream. Il existe maintenant les méthodes ImportXML et ExportXML mais je n'ai pas trouvé d'exemples pour comprendre comment les utiliser.


  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Il faut en fait maintenant utiliser les méthodes LoadFile et SaveFile et bosser avec io.BytesIO plutôt que io.StringIO

    Pour la lecture, cela donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    stream = io.BytesIO() 
    stream.write(bytes(txt, encoding = "utf8")) 
    stream.seek(0) 
     
    handler = wx.richtext.RichTextXMLHandler() 
    buffer = rtc.GetBuffer() 
    buffer.AddHandler(handler) 
     
    handler.LoadFile(buffer, stream)
    Pour la sauvegarde, il n'y a également que peu de changement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    handler = wx.richtext.RichTextXMLHandler()
    stream = io.BytesIO()
    handler.SaveFile(rtc.GetBuffer(), stream)
    stream.seek(0)
    txt = stream.read()

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

Discussions similaires

  1. [AC-2002] RichTextCtrl et hauteur du scroll
    Par istam3 dans le forum IHM
    Réponses: 1
    Dernier message: 08/04/2010, 21h21
  2. WxPython - RichTextCtrl - menu contextuel
    Par pibol dans le forum wxPython
    Réponses: 1
    Dernier message: 04/04/2010, 19h02
  3. wx.RichTextCtrl - Texte justifié
    Par carlita dans le forum wxPython
    Réponses: 2
    Dernier message: 30/10/2008, 01h29
  4. LoadStream dans un wx.RichTextCtrl
    Par ewelthen dans le forum wxPython
    Réponses: 1
    Dernier message: 18/01/2008, 14h32
  5. Réponses: 2
    Dernier message: 09/11/2006, 11h01

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