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 :
j'ai vu qu'il existait scintilla mais je ne peut pas l'utiliser dans le projet.
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 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.
Partager