Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Coloration syntaxique personnalisée

Coloration syntaxique personnalisée

Remonter à Forum général Python
  • Coloration syntaxique personnalisée

    Envoyé par darkloy le 20 Avril 2009 à 11:51
    Bonjour,

    Je suis en train de crée un petit outils, un éditeur de texte qui ouvre des fichiers .map.

    Ce fichier génère du xml proprietaire à partir de n'importe quel flux xml.

    il contient plusieurs lignes :

    futuresbalisexml|entete



    futuresbalisexml est de la form balise1/balise2/balise2

    tout marche mais j'aimerais juste qu'a l'ouverture (j'utilise Tkinter) la partie 'futuresbalisexml' soit colorée d'une couleur, le séparateur '|' d'une autre ainsi que 'entete'

    Quelqu'un aurais une idée ?

    Merci
    • Re: Coloration syntaxique personnalisée

      Envoyé par jacko le 20 Avril 2009 à 13:03
      1- Repérer les segments de texte qui doivent être colorés.
      2- Marquer ces segments par tag_add().
      3- Affecter les caractéristiques (couleur, police, etc.) par tag_config().

      Note : tag_add() et tag_config() sont des méthodes du Text.

      Bonne chance.
    • Re: Coloration syntaxique personnalisée

      Envoyé par darkloy le 20 Avril 2009 à 13:09
      Super!!
      Je vais regarder ca desuite, ca devrais le faire !!


      Merci Beaucoup Jacko !!!! ;)
    • Re: Coloration syntaxique personnalisée

      Envoyé par darkloy le 20 Avril 2009 à 14:41
      Désolé, je suis un grand débutant sous python, je ne sais pas si je peux "placer" des tags sur la variable 'lines' directement.Je ne pense pas.J'ai testé différentes choses mais sans succés.
      Pour ne pas persister dans mes bétises :

      1 - j'insere le texte ligne par ligne
      2 - je récupère le texte
      3 - je coupe le texte avec le séparateur
      4 - j'identifie la position de la partie gauche, je lui place un tag
      5 - idem pour la partie de droite
      6 - idem pour le séparateur

      ca vous semble logique ?



      def open_map(self):
      self.openmap=tkFileDialog.askopenfilename(filetypes = [("Fichiers .map", "*.map")])
      f=open(self.openmap)
      l = 0
      for lines in f:
      l = l+1

      self.text.insert(str(l)+'.0', lines)


    • Re: Coloration syntaxique personnalisée

      Envoyé par jacko le 20 Avril 2009 à 22:53
      Oui, c'est cela. La variable "lines" est une simple chaîne Pyhton, elle n'a rien à voir avec le graphisme, les couleurs, etc. Par contre, c'est Tkinter, gestionnaire graphique, et ici sa classe Text qui sait manipuler les tags et les couleurs.
      Donc effectivement, il faut insérer entièrement le texte par le code montré en exemple ; puis c'est sur le texte déjà inséré dans Text qu'il faut faire les manipulations : chercher le séparateur par text.search(), et faire comme vous le dites points 4-6. Boucler sur search() pour trouver tous les séparateurs.

    • Re: Coloration syntaxique personnalisée

      Envoyé par darkloy le 21 Avril 2009 à 07:30
      Merci beaucoup, je me mets au travail et je poste le code si ca peux interesser quelqu'un .Merci beaucoup !

      Merci aussi pour la fonction car je ne sais pas trop ou les chercher, a pars la doc principale en Anglais


      Merci Jacko !..et respect !!! :)
    • Re: Coloration syntaxique personnalisée

      Envoyé par jacko le 21 Avril 2009 à 09:19
      Bien que souvent méprisé par rapport à d'autres toolkits, j'aime beaucoup Tkinter, que je trouve très puissant et très propre.

      Pour la doc :
      je pense que tu utilises la référence (en anglais) :
      http://infohost.nmt.edu/tcc/help/pubs/tkinter.pdf.

      Pas tout à fait complet -> parfois il est utile de se référer à la doc de référence de Tk (sous couche de Tkinter) :
      http://tmml.sourceforge.net/doc/tk/index.html

      Il y a des tutoriels en français ici :
      http://wfr.tcl.tk/

      Bon courage.
    • Re: Coloration syntaxique personnalisée

      Envoyé par darkloy le 21 Avril 2009 à 13:15
      Ben pour dire la vérité, je regarde un peu PyQt depuis quelques temps .
      Mais je n'ai pas beaucoup d'expérience en Python, et en dehors de java et swing (language que je n'aime pas du tout), je ne suis pas habitué aux applications de bureau - Je suis développeur "web" !
      Mais comme je suis très attiré par le monde qui gravite autours de linux et d'ubuntu en particulier, et de cette philosophie open source, ca fait quelques semaines que je 'touche' à python .C'est vraiment un language que j'aime, au quel je retrouve tous les avantages de Java et non ses inconvénients, en dehors d'une communauté un peu moindre .Mais ce forum est vraiment sympa, car je vois qu'il y'as beaucoup de gens pour aider les autres .
      Donc je vais persévérer, et je te fais confiance, je vais plus m'orienter sur TK.
      Amicalement
      Merci beaucoup Jacko !!!!
Rendu par Ploneboard