c++ - Qt QTextEdit 行号

标签 c++ qt code-editor

我正在为 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 的结合并不好。我知道这些 block 保存在 QTextDocument 中,但该类也没有这些方法。

我尝试搜索示例,但每次有人问这个问题时,他都会被定向到同一个链接。

谁能帮帮我?

谢谢

最佳答案

该示例使用 QPlainTextEdit 并访问 firstVisibleBlock() 等 protected 函数。

查看QPlainTextEdit 的源代码,了解 IT 是如何实现这些功能的。看起来它们是根据文档实现的(至少 firstVisibleBlock() 是这样)。

或者,复制示例并自己从 QPlainTextEdit 派生,不要使用 QTextEdit

关于c++ - Qt QTextEdit 行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108221/

相关文章:

qt - 在应用程序窗口顶部绘制覆盖层

javascript - 如何将 prettier-js.el 集成到 spacemacs 中

text-editor - 如何使MS Visual Code透明?

sublimetext2 - 如何在 Sublime Text 2 中取消选择单个多选点

c++ - 使用BOOST线程属性导致bind编译错误

c++ - C 和 C++ .lib 文件是否可移植?

c++ - 0xC0000005 : Access violation reading location 0xccccccd0. C++

linux - 如何使用 qmake 将库文件构建到 DEB 包中而不是构建到我的系统中?

c++ - 如何在单次遍历中找到单链表的中间节点(如果不给出链表长度)

c++ - 使用 CMake 设置应用程序图标