本文主要介绍了基于QPlainTextEdit实现的,带有行号的,支持高亮的编辑器实现,话不多说,先上效果图:
1.行号头文件:linenumberarea.h
#ifndef LINENUMBERAREA_H
#define LINENUMBERAREA_H
#include <QWidget>
#include <QSize>
#include "codeeditor.h"
class LineNumberArea : public QWidget
{
public:
LineNumberArea(CodeEditor *editor) : QWidget(editor), codeEditor(editor)
{}
QSize sizeHint() const override
{
return QSize(codeEditor->lineNumberAreaWidth(), 0);
}
protected:
void paintEvent(QPaintEvent *event) override
{
codeEditor->lineNumberAreaPaintEvent(event);
}
pr