我正在为Qt中的GLSL编写代码编辑器,我在显示QTextEdit的行号方面遇到了问题。我从Qt Code Editor Example但未解决这个例子,但是这部分
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 :(得分:0)
该示例使用QPlainTextEdit
并访问firstVisibleBlock()
等受保护的函数。
查看QPlainTextEdit
的源代码,了解IT实现这些功能的作用。它看起来好像是根据文档实现的(至少firstVisibleBlock()
确实如此)。
或者,复制示例并从QPlainTextEdit
自己派生,不要使用QTextEdit
。