2012-08-24 87 views
2

我正在爲Qt中的GLSL編寫代碼編輯器,我在顯示QTextEdit的行號時遇到了問題。我從已瞭解的Qt Code Editor Example例如但這部分Qt QTextEdit行號

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

並沒有真正給定的事實,我沒有firstBisibleBlock,blockBoundingGeometry和blockBoundingRect方法一個QTextEdit很好地結合起來。我知道這些塊保存在QTextDocument中,但該類沒有這些方法。

我試過尋找一個例子,但每次有人問這個問題,他都會被引導到同一個鏈接。

任何人都可以幫助我嗎?

由於

+0

我有同樣的問題,我陷入了同樣的問題。 –

+1

這裏是工作示例:http://stackoverflow.com/questions/2443358/how-to-add-lines-numbers-to-qtextedit – zuko

回答

0

該示例使用QPlainTextEdit並且訪問firstVisibleBlock()等保護的功能。

查看QPlainTextEdit的源代碼,看看IT如何實現這些功能。它看起來好像是按照文檔實現的(至少有firstVisibleBlock()這樣做)。

或者,複製示例並自己從QPlainTextEdit派生而不使用QTextEdit