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 :

Un éditeur HTML en WYSIWYG sous wxPython ?


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur d'études
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut Un éditeur HTML en WYSIWYG sous wxPython ?
    Bonjour à tous,

    j'effectue actuellement un stage au cours duquel -je concis- je dois développer un logiciel d'automatisation de flux RSS. Ce que j'aimerais faire, pour les descriptions, ce serait de proposer à l'utilisateur de saisir sa description en WYSIWYG au mieux. J'ai réussi à trouver comment faire pour saisir de l'HTML directement dans un TextCtrl en cliquant sur des boutons créés pour l'occasion, mais je me demande si il n'y aurait pas moyen de faire la même chose en WYSIWYG.
    Au cours de mes recherches j'ai trouvé des sujets parlant de wxGlade, néanmoins je ne connais pas du tout cette bibliothèque et j'ignore si elle propose ce que je recherche, et si oui, si elle sera compatible avec wxPython dans le cadre d'un développement multiplateforme ou si elle s'utilise de la même façon (je suppose que c'est également une bibliothèque dérivée de wxWidget, mais là, j'extrapole sûrement).

    Je vous remercie d'avance pour votre attention et les éventuelles réponses que vous me proposeriez !
    Cordialement, Norore.

    Edit : il semblerait que ce soit possible grâve au widget RichTextCtrl. Je teste tout ça et je ferais passer le thread en résolu le cas échéant.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Salut,

    wxGlade est un GUI builder. (A moins qu'un autre projet porte le même nom mais je ne pense pas...). Cela ne t'intéressera donc pas dans ton histoire.

    A +

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur d'études
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Citation Envoyé par Ggamer Voir le message
    Salut,

    wxGlade est un GUI builder. (A moins qu'un autre projet porte le même nom mais je ne pense pas...). Cela ne t'intéressera donc pas dans ton histoire.

    A +
    Effectivement, c'est ce que j'avais cru comprendre, du coup je ne m'y suis pas lancée ! Merci pour cette précision .

    J'essai de comprendre un peu le fonctionnement de wx.RichTextCtrl, mais j'avoue que j'ai un peu de mal à comprendre l'exemple de la démo wxPython. Il semblerait que cela génére bien du code html, mais dans une page html entière, hors ce qui m'interesserait ce serait juste une partie de code html afin de pouvoir placer le tout dans une zone précise.

    Si l'un d'entre vous connais ce widget, je suis toute ouïe !

  4. #4
    Membre averti
    Femme Profil pro
    Ingénieur d'études
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    J'ai trouvé la solution en regardant plus attentivement le code source.

    Voici l'astuce pour ceux qui chercheraient comment faire (extrait de mon code source, issu de la démo de wxPython et remanié au cours de mes tests) :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    def OnFileViewHTML(self, evt):
            # Get an instance of the html file handler, use it to save the
            # document to a StringIO stream, and then display the
            # resulting html text in a dialog with a HtmlWindow.
            handler = rt.RichTextHTMLHandler()
            handler.SetFlags(rt.RICHTEXT_HANDLER_SAVE_IMAGES_TO_MEMORY)
            handler.SetFontSizeMapping([7,9,11,12,14,22,100])
     
            import cStringIO
            stream = cStringIO.StringIO()
            if not handler.SaveStream(self.rtc.GetBuffer(), stream):
                return
     
            import wx.html
            dlg = wx.Dialog(self, title="HTML", style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
            html = wx.html.HtmlWindow(dlg, size=(500,400), style=wx.BORDER_SUNKEN)
            html.SetPage(stream.getvalue())
     
            ### stream.getvalue() retourne la source au format html, virer les balises qui genent
            extract = stream.getvalue()
     
            # suppression du debut qui ne nous interesse pas
     
            extract = extract.replace("<html><head></head><body>", "")
     
            # suppression de la fin qui ne nous interesse pas non plus
     
            extract = extract.replace("</body></html>", "")
     
            # affichage du code source html une fois parse
     
            # print extract
     
            btn = wx.Button(dlg, wx.ID_CANCEL)
            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(html, 1, wx.ALL|wx.EXPAND, 5)
            sizer.Add(btn, 0, wx.ALL|wx.CENTER, 10)
            dlg.SetSizer(sizer)
            sizer.Fit(dlg)
     
            dlg.ShowModal()
     
            handler.DeleteTemporaryImages()

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

Discussions similaires

  1. Un éditeur Html WYSIWYG avec WebWiew ?
    Par Beginner. dans le forum Général Java
    Réponses: 0
    Dernier message: 26/04/2015, 00h35
  2. Réponses: 3
    Dernier message: 17/06/2013, 13h20
  3. [EDI][PHP-HTML2FPDF-WYSIWYG] Cherche un éditeur html pour créer des pdf
    Par exorus dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/07/2006, 12h37
  4. éditeur html sous eclipse?
    Par nada83 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/05/2006, 13h55
  5. Intégration éditeur html dans page asp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 2
    Dernier message: 06/05/2004, 09h04

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