PyQT Qscintilla Progress 4g

2024-10-01 00:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我在python应用程序中实现QsciLexerCustom来创建自己的progress4gl编辑器。但是在浏览Qscintilla源代码时,我注意到他们已经在Qscintilla/lexers中有了一个进步的4gl lexer/词汇进度.cpp但是在读取http://www.riverbankcomputing.com/static/Docs/QScintilla2/annotated.html时,它们没有指定任何qscilexprogress类或任何访问这个lexer的方法,我可以看到。在

有人知道怎么做吗?在

任何帮助都将不胜感激。在


Tags: com应用程序http源代码wwwstatic编辑器cpp
2条回答

QScintilla显然是一个使用QtGUI框架的spriclla端口。移植lexer可能需要一些工作,所以他们可能没有花时间为不受欢迎的语言移植lexer。在

换言之,我认为您找到的.cpp文件只是一个spriclla的残余文件,它从未被移植到QScintilla,但仍在它们的代码库中。在

QSciLexer*类的名称有误。他们根本不是真正的雷克萨斯人。相反,它们为基于闪烁体的编辑器SciTE使用的属性文件提供包装器。属性文件包含配置特定闪烁词法器所需的所有设置(字体、颜色、关键字等)。在

默认情况下,QScintilla不为闪烁支持的每种语言提供QsciLexer*类。它只为最常用的语言提供一个,外加用户在mailing list上请求的任何语言。AFAIK,Qscintilla的作者很乐意为scribella支持的任何语言添加一个QsciLexer*类,唯一的要求是为相应的lexer存在一个可用的SciTE属性文件。在

不幸的是,当前的SciTE源没有包含Progress 4GL lexer的属性文件!然而,完全有可能是有人在某个时间创建了一个,所以稍加搜索就可能产生一个。如果做不到这一点,你总是可以自己创造一个。在

PS:QScintilla不允许正确地将QsciLexer类作为子类(一些关键的虚拟函数不是公共的),这是一个真正的烦恼。如果是这样的话,就可以为spriclla支持的任何语言创建一个自定义包装器类,而不必要求Qscintilla的作者添加一个。在

相关问题 更多 >