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 :

wxPython et STC_LEX_PHP


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Par défaut wxPython et STC_LEX_PHP
    Hello

    En me basant sur l'exemple de la démo wxPython j'ai commencé à écrire une petite application destiné à éditer du code php.

    Mais je bloque sur la façon de définir les styles pour la coloration du texte...

    Déjà d'après ce que j'ai vu il faudrait plutôt utiliser STC_LEX_HTML car STC_LEX_PHP est déprécié...

    Quoiqu'il en soit si quelqu'un avait une expérience et/ou des exemples à partager sur la question, je lui en serais très reconnaissant. En effet mes recherches stagnent, je n'avance pas.

    Un peu de code pour montrer où j'en suis d'après ce que j'ai pu glaner de ci de là (notamment sur ce site):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.wysiwyg.SetLexer(stc.STC_LEX_HTML)
    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
    #STYLES
    self.wysiwyg.StyleSetSpec(stc.STC_STYLE_DEFAULT,	 "face:%(helv)s,size:%(size)d" % faces)
    self.wysiwyg.StyleClearAll()
    self.wysiwyg.StyleSetSpec(stc.STC_STYLE_LINENUMBER,  "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_STYLE_BRACELIGHT,  "fore:#FFFFFF,back:#0000FF,bold")
    self.wysiwyg.StyleSetSpec(stc.STC_STYLE_BRACEBAD,	"fore:#000000,back:#FF0000,bold")
    self.wysiwyg.StyleSetSpec(stc.STC_STYLE_INDENTGUIDE, "fore:#AB9664")
     
    self.wysiwyg.StyleSetSpec(stc.STC_H_TAG, "fore:#7F0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_TAGUNKNOWN, "fore:#FF0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_ATTRIBUTE, "fore:#FFA500,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_ATTRIBUTEUNKNOWN, "fore:#FF0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_NUMBER, "fore:#FF284E,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_DOUBLESTRING, "fore:#00A100,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_SINGLESTRING, "fore:#DADA00,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_OTHER, "fore:#1A1A1A,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_COMMENT, "fore:#90EE90,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_XCCOMMENT, "fore:#90EE90,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_ENTITY, "fore:#0000FF,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_TAGEND, "fore:#7F0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_XMLSTART, "fore:#7F0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_XMLEND, "fore:#7F0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_SCRIPT, "fore:#4D4D4D,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_ASP, "fore:#7F0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_ASPAT, "fore:#7F0000,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_VALUE, "fore:#1E90FF,size:%(size)d" % faces)
    self.wysiwyg.StyleSetSpec(stc.STC_H_QUESTION, "fore:#8B6914,size:%(size)d" % faces)
    En l'état seuls les commentaires sont reconnu, les tags html eux sont colorés selon la définition de STC_H_TAGUNKNOWN...

    Et encore là c'est que pour la part du code html. Je n'ai encore rien trouvé pour la coloration du code php.

    Bon, ben voilà, je rame bien...

    Merci pour votre aide!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Par défaut
    Bon, j'ai avancé... En me basant sur des infos trouvé sur le web j'ai pu écrire le code suivant qui fonctionne:

    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
    self.wysiwyg.SetLexer(stc.STC_LEX_HTML)
    self.wysiwyg.SetStyleBits(7)
     
    self.wysiwyg.StyleSetSpec(stc.STC_H_QUESTION, "fore:#8B6914,bold")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_DEFAULT, "fore:#000000")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_HSTRING, "fore:#218621")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_SIMPLESTRING, "fore:#FFA500")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_WORD, "fore:#0000FF")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_NUMBER, "fore:#1E90FF")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_VARIABLE, "fore:#750000")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_COMPLEX_VARIABLE, "fore:#472323")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_COMMENT, "fore:#1A1A1A")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_COMMENTLINE, "fore:#4D4D4D")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_HSTRING_VARIABLE, "fore:#00FF00")
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_OPERATOR, "fore:#FF6D87")
     
    #J'ai nommé mon objet "wysiwyg" mais ça n'a rien à voir avec wysiwyg!
    Par contre je ne trouve pas comment définir les styles pour les mots spéciaux et les structures de contrôles de php (ex.: "class", "function", "for", "while", "if", etc...).

    Votre aide sera la bienvenue! Merci beaucoup d'avance

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Par défaut
    J'ai trouvé la solution:

    1. définir le style pour STC_HPHP_WORD
    2. définir SetKeywords

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.wysiwyg.StyleSetSpec(stc.STC_HPHP_WORD, "fore:#0000FF")
    self.wysiwyg.SetKeyWords(4, "class function for if elseif else foreach while echo")

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

Discussions similaires

  1. [wxPython] bouton
    Par airod dans le forum wxPython
    Réponses: 5
    Dernier message: 26/03/2005, 17h42
  2. [wxPython] aide pour wxlistcrtl
    Par nadrak dans le forum wxPython
    Réponses: 2
    Dernier message: 10/03/2005, 10h20
  3. Réponses: 1
    Dernier message: 16/02/2005, 12h04
  4. [WxPython][wx.GridBagSizer]Placement des composants
    Par Guigui_ dans le forum wxPython
    Réponses: 1
    Dernier message: 29/01/2005, 15h46
  5. Réponses: 3
    Dernier message: 12/07/2004, 23h27

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