我正在尝试编写自己的代码编辑器,我认为这是学习pyQt的好方法。 我正在使用qtextedit,我可以在其中编写代码(它不是真正的代码,更多的伪代码)。 每行代表以分号结尾代表一些命令 e.g。
PSEUDO->FWD->90;
PSEUDO->STOP;
PSEUDO->RIGHT 90;
PSEUDO->FWD 10;
这些相对容易阅读,因为用户按下[ENTER],当前行被读取,解析并检查错误,所以
PSEUDO->RIGHT -pi/2
会产生错误,因为该行不以分号结尾,而RIGHT之后的值必须是一个数字。(我的编辑,我的规则)。所有这些我或多或少得到了工作。
我想知道怎么做多行。我熟悉Eclipse,sublime或visual studio这样的编辑器,在我的情况下很好地处理多行线路
PSEUDO->DO:
FWD->90
RIGHT->45
FWD->10
LEFT->55
FWD->50
STOP;
应该将所有内容都读入并作为一个语句处理,从关键字PSEUDO开始,以分号结束。 但是,以下内容应理解为3个单独的陈述。
PSEUDO->DO:
FWD->90
RIGHT->45
FWD->10
LEFT->55
FWD->50
STOP;
PSEUDO->DO:
FWD->90
RIGHT->45
STOP;
PSEUDO->BACK 10;
我的问题如何从QTextEditor中读取多条线作为谨慎的陈述。 每当我按[ENTER]键换行时,我应该进行解析/检查吗?
我使用的是python2.7,pyQT和QTextEdit。
答案 0 :(得分:0)
基本上你要做的是,可以使用文档的所有文本和一些正则表达式来完成。我会小心这个课程,因为它可能会减慢速度。
因此,为了保持精益并使用正确的Qt类,我会使用与富文本处理相关的任何内容,QTextDocument
和QTextCursor
。
我使用QSyntaxHighlighter
了很多,QRegExp
。现在也有QRegularExpression
。以下是我开始使用Rich Text处理的类和一般文档。
http://doc.qt.io/qt-5/qtextblock.html#details
http://doc.qt.io/qt-5/richtext-structure.html
http://doc.qt.io/qt-5/richtext.html
http://doc.qt.io/qt-5/richtext-cursor.html
http://doc.qt.io/qt-5/richtext-common-tasks.html#finding-text
希望有所帮助。