我刚刚学习Qt。我想显示QPlainTextEdit的行号。我找到了this link 它起作用了。但现在我希望编辑器将区域中的行号显示在该区域的右侧以进行编辑。我一直在搜索谷歌,但我无法解决。怎么解决?
答案 0 :(得分:1)
除了GPPK的答案,您还需要更改视口边距:
void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */)
{
setViewportMargins(0, 0, lineNumberAreaWidth(), 0);
}
GPPK的代码将正确的绘图矩形分配给子窗口小部件,我的代码确保滚动视图不会绘制到该区域。
答案 1 :(得分:0)
在链接中,它会显示如何绘制左侧的行号区域:
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()));
}