【问题标题】:Qt Code editor display the line number in an area to the RIGHTQt 代码编辑器在右侧显示区域中的行号
【发布时间】:2016-01-20 22:18:15
【问题描述】:

我只是在学习 Qt。我想显示 QPlainTextEdit 的行号。我找到了this link 它奏效了。但是现在我希望编辑器在该区域的右侧显示一个区域中的行号以进行编辑。我一直在搜索谷歌,但我无法解决。如何解决?

【问题讨论】:

  • 我已经修复了链接。

标签: c++ qt numbers line


【解决方案1】:

除了GPPK的回答,你还需要改变视口边距:

void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */)
{
   setViewportMargins(0, 0, lineNumberAreaWidth(), 0);
}

GPPK 的代码将正确的绘图矩形分配给子小部件,我的代码确保滚动视图不会绘制到该区域。

【讨论】:

    【解决方案2】:

    在您的链接中,它向您展示了它如何在左侧绘制行号区域:

    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()));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多