Qt代码编辑器在右侧的区域中显示行号
Qt Code editor display the line number in an area to the RIGHT
我只是在学习Qt。我想显示QPlainTextEdit的行号。我找到了这个链接它奏效了。但是现在我希望编辑器在该区域右侧的区域显示行号以进行编辑。我一直在搜索谷歌,但我无法解决。如何解决?
除了 GPPK 的答案,您还需要更改视口边距:
void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */)
{
setViewportMargins(0, 0, lineNumberAreaWidth(), 0);
}
GPPK 的代码为子小部件分配正确的绘图矩形,我的代码确保滚动视图不会绘制到该区域。
在您的链接中,它显示了它如何在左侧绘制行号区域:
void CodeEditor::resizeEvent(QResizeEvent *e) { QPlainTextEdit::resizeEvent(e); QRect cr = contentsRect(); lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); }
为了从右侧绘制行号,您将(这是未经测试的)执行以下操作:
void CodeEditor::resizeEvent(QResizeEvent *e)
{
QPlainTextEdit::resizeEvent(e);
QRect cr = contentsRect();
lineNumberArea->setGeometry(QRect(cr.right() - lineNumberArea->width() , cr.top(), lineNumberAreaWidth(), cr.height()));
}
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- 如何显示与系统不同的区域设置的QDate月
- 如何从图像中提取ROI区域并将其显示在窗口中
- Qt代码编辑器在右侧的区域中显示行号
- MFC:当进程在win32文本区域(MFC应用程序)中执行时,异步(并发)显示进程的输出
- win32, scrollwindowex(): 如何显示向下滚动后消失的"off window"的向上区域?
- 为什么当窗口在win32上失去焦点时,被覆盖的非客户端区域显示默认值
- Qt网格布局不正确显示在滚动区域
- QSystemTrayIcon没有显示在Ubuntu 14.04的通知区域
- 为什么 printf 在使用区域设置时可以显示非 ASCII 字符"C"?