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