我正在制作一个小型 IDE——主要是为了好玩!我用 Python 编写所有内容,并使用 PyQt5 库来构建 GUI。
这是当前状态的屏幕截图:
代码编辑器本身是一个简单QTextEdit()
的小部件 - 嵌入在一个QFrame()
小部件中,该小部件本身嵌入在主窗口中。所以父子关系如下(稍微简化了一点):
QMainWindow( ) >> QFrame( ) >> QTextEdit( )
QSyntaxHighlighter()
我使用PyQt5中的类实现了一些基本的语法高亮。这很棒——但还不是很棒。Bakuriu先生建议我看一下QScintilla
包裹。现在我纠结于几个问题:
问题一:安装QScintilla
这是我可以找到的关于 QScintilla2 的 PyQt 文档:http: //pyqt.sourceforge.net/Docs/QScintilla2/。显然在 Windows 上,我需要下载 QScintilla2 的源代码并将其构建到一个dll
文件中。没有更方便的方法吗?例如,一些预构建的包(带有安装程序)?
我还找到了这个下载页面:http ://www.scintilla.org/ScintillaDownload.html 。下载页面提到:<<There is no download available containing only the Scintilla DLL. However, it is included in the SciTE executable full download as SciLexer.DLL.>>
. 因此,如果我解释正确,我可以通过dll
这种方式获得预构建的 Scintilla -file。但是这个下载页面并没有在任何地方提到 PyQt。所以我想知道dll
-file 是否可以在 PyQt 中工作。毕竟,下载的是Scintilla
,不是QScintilla
。
一旦我得到dll
-file,我如何实际使用它在 QFrame 中嵌入 QScintilla 编辑器?
问题 2:Scintilla 还是 SciTE?
阅读有关 Scintilla(和 QScintilla)的信息时,我偶然发现了 SciTE。有人为这个软件做了一个很好的安装程序:http ://www.ebswift.com/scite-text-editor-installer.html 。在我的 PyQt GUI 中嵌入 SciTE 是否可取?如果是这样 - 我不需要'QSciTE'而不是简单的'SciTE'吗?
问题3:一些示例代码
一旦安装了 (Q)Scintilla 或 (Q)SciTE,我将需要以某种方式开始。如果有人已经在 PyQt GUI 中嵌入了 Scintilla/SciTE,请发布一些示例代码。那将非常有帮助:-)
编辑
几个月后,我回到了我的这个老问题。与此同时,我与我的朋友 Matic Kukovec 合作,编写了一个关于如何使用 QScintilla 的精彩教程:
QScintilla 是一个很棒的工具,但信息非常稀缺。我希望这个倡议可以提供急需的文件。