代码编辑器主要是使用了CodeEditor和LineNumberArea,其实现步骤如下: CodeEditor是继承QPlainTextEdit的小部件,在CodeEditor(LineNumberArea)中保留一个单独的小部件,在其上绘制行号。 QPlainTextEdit继承自QAbstractScrollArea,并且编辑在其viewport()的边距内进行。通过将视口的左边距设置为绘制行号所需的尺寸,为行号区...
} voidCodeEditor::updateLineNumberAreaWidth(int/* newBlockCount */) { setViewportMargins(lineNumberAreaWidth(),0,0,0); } voidCodeEditor::updateLineNumberArea(constQRect&rect,intdy) { if(dy) lineNumberArea->scroll(0,dy); else lineNumberArea->update(0,rect.y(),lineNumberArea->width(),...
1#include"codeeditor.h"2#include <QDebug>34CodeEditor::CodeEditor(QWidget *parent): QPlainTextEdit(parent)5{6lineNumberArea =newLineNumberArea(this);78//事件绑定9connect(this, SIGNAL(blockCountChanged(int)),this, SLOT(updateLineNumberAreaWidth(int)));10connect(this, SIGNAL(updateRequest(QR...
基于Qt的CodeEditor 首先看最终效果: 主要要实现的地方是行号的显示,还有选中行的高亮。 项目结构 整个程序只有三个文件,最主要的只有一个CodeEditor类,它是继承自QPlainTextEdit,这个类相比于普通的TextEdit更适合于做富 文本编辑器。 头文件
CodeEditor 类,继承QPlainTextEdit,更新行号,加载文本,文件操作等。 CodeHighLight 类继承QSyntaxHighlighter,实现关键字、特殊语法等的高亮。 Widget类,UI层操作。 1. 继承 QPlainTextEdit 添加一些功能 行号区域是一个单独的小部件,我们再这个部件上“画”出行号,当文本行数变化时,行号区域的宽度也要发生变化,此时...
classLineNumberArea :publicQWidget{public: LineNumberArea(CodeEditor*editor) :QWidget(editor),codeEditor(editor) {}QSizesizeHint()constoverride {returnQSize(codeEditor->lineNumberAreaWidth(),0); }protected:voidpaintEvent(QPaintEvent*event) override { codeEditor->lineNumberAreaPaintEvent(event); }pr...
Qt Code Editor Widget It's a widget for editing/viewing code. This project uses a resource namedqcodeeditor_resources.qrc. The main application must not use a resource file with the same name. (It's not a project from a Qt example.) ...
#Dorothy - CodeEditor 这是一个专门为Dorothy游戏框架开发的代码编辑器,支持Dorothy的专用的Xml语言混合Lua代码的格式编写游戏。编辑器使用Qt开发,目前支持的功能有语法高亮和Xml语言的API自动补全。语法高亮使用Qt的QSyntaxHighlighter模块,通过状态机+正则表达式实现,Xml的代码补全使用Yard文法分析库进行分析完成。
将端口属性设置完毕后,在工作区的左下角的Code Editor中开始编写功能算法代码: After setting the port properties, start to write the function algorithm code in theCode Editorin the lower left corner of the workspace assignout = a & b; 关闭代码编辑器后代码将会自动保存,此时可点击Code View查看生成...
现 在来完成应用程序的代码部分:创建convert()函数。在Project Overview窗口点击“cfconvmainform.ui.h”来启动Code Editor。此时convert()函数实际上已经存在了,只不过是空的罢了。输入下面的C++代码来完成函数: 复制 void cfconvMainForm::convert() {/*Declare some variables*/double celsius_input,result=0;/...