2012-08-24 5 views
2

Je travaille sur un éditeur de code pour GLSL dans Qt et j'ai des problèmes avec l'affichage des numéros de ligne d'un QTextEdit. J'undestand l'exemple de Qt Code Editor Example mais cette partieQt QTextEdit numéros de ligne

QTextBlock block = firstVisibleBlock(); 
int blockNumber = block.blockNumber(); 
int top = (int) blockBoundingGeometry(block).translated(contentOffset()).top(); 
int bottom = top + (int) blockBoundingRect(block).height(); 

ne se combine pas vraiment bien avec un QTextEdit compte tenu du fait que je n'ai pas les méthodes firstBisibleBlock, blockBoundingGeometry et blockBoundingRect. Je sais que les blocs sont conservés dans un QTextDocument mais cette classe n'a pas non plus ces méthodes.

J'ai essayé de chercher un exemple mais chaque fois que quelqu'un pose cette question, il est dirigé vers ce même lien.

Quelqu'un peut-il m'aider?

Merci

+0

J'ai le même problème et je me suis coincé dans le même problème. –

+1

Voici un exemple de travail: http://stackoverflow.com/questions/2443358/how-to-add-lines-numbers-to-qtextedit – zuko

Répondre

0

L'exemple utilise QPlainTextEdit et accès firstVisibleBlock() etc fonctions protégées. Jetez un oeil au code source pour QPlainTextEdit et voyez ce que l'informatique fait pour implémenter ces fonctions. On dirait qu'ils sont implémentés en termes de document (au moins firstVisibleBlock()).

Alternativement, copiez l'exemple et dérivez de QPlainTextEdit vous-même et n'utilisez pas QTextEdit.