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

Qt Discussion :

indentation automatique dans un QTextEdit


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut indentation automatique dans un QTextEdit
    Bonjour,

    Alors voila, pour un projet étudiant où l'on doit réaliser un éditeur web en QT
    (Et notre enseignement ce résume aux tutoriaux de trolltech )
    je m'occupe actuellement de réaliser l'indentation automatique du code.

    J'ai d'abord réaliser ce début de code :
    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
    #include "New.h"
    using namespace std;
    New::New (QWidget *parent)
           : QTextEdit(parent) {
           connect(this , SIGNAL(textChanged ()), this, SLOT(indent());
    }
     
     void New::indent(){
     int indent = 0; //varriable d'indentation nb de tabulation
     QTextCursor pos = textCursor ()  //position actuelle du curseur
     for (int i=0; i<pos+1;i++) {
       QString str = //recherche d'une expretion reguliere de type <html> avec QRegEx "<.*>"
       if (str != NULL){
         QString temp = //QRegEx />
         if (temp == NULL){
           temp = //QRegEx </
           if (temp != NULL){indent--;}
           else {indent++;}
         }
       }
       ligne actuelle du curseur -> insertblock() * indent;
     }
    }
    j'ai vu qu'il existait scintilla mais je ne peut pas l'utiliser dans le projet.

    j'ai donc une première question:
    -Comment récupérer les lignes du QTextEdit jusqu'à la position actuelle du curseur et leur appliquer une regex une par une?

    Merci de l'attention que vous porterez a mon problème.

  2. #2
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Tout ce que je peux te dire concerne le curseur.

    Tu récupère un QTextCursor depuis le QtextEdit, et ensuite avec le textCursor tu récupère la position :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    QTextEdit edit;
    ...
    ...
     
    QTextCursor cursorEdit = edit.textCursor();
     
    int pos = cursorEdit.position();
    tu peux donc connaître là où se trouve son curseur dans le QTextEdit. Tu peux donc venir récupérer la ligne où il se trouve, le texte qui le précède, le suit....

    Je ne sais pas ce qu'est une regex par contre

    Edit:
    après avoir lu ton code, je crois savoir à quoi "regex" correspond

  3. #3
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Citation Envoyé par cayou66 Voir le message
    Je ne sais pas ce qu'est une regex par contre
    Regex je pense que c'est expression régulière.

    [EDIT] desolé cayou66 j'avais pas vu ton EDIT.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  4. #4
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    J'en étais sûr

    Je suis plutôt lent à la détente

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    je vais regarder les mouvement de curseurs
    et ouioui regex => QRegexp expretion régulière

  6. #6
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Utiliser des REs pour le parsing d'un fichier me paraît hautement improbable... C'est quelle expression que tu veux appliquer à chaque ligne ?

Discussions similaires

  1. QTextEdit + indentation automatique
    Par nada114 dans le forum Qt
    Réponses: 3
    Dernier message: 17/12/2008, 14h56
  2. [JDevelopper] Comment indenter automatiquement le code ??
    Par Bicnic dans le forum JDeveloper
    Réponses: 5
    Dernier message: 03/08/2004, 21h11
  3. Réponses: 2
    Dernier message: 11/05/2004, 11h17
  4. Scroll automatique dans un JTextPane
    Par regbegpower dans le forum Composants
    Réponses: 9
    Dernier message: 11/11/2003, 09h24
  5. indentation automatique
    Par Boosters dans le forum JBuilder
    Réponses: 3
    Dernier message: 17/07/2003, 16h44

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