我在做一个小IDE - 主要是为了好玩!我用Python编写所有东西,并使用PyQt5库构建GUI。如何在自制的PyQt GUI中嵌入'QScintilla'代码编辑器?
这里的当前状态截图:
代码编辑器本身是一个简单的QTextEdit()
部件 - 嵌入QFrame()
小部件,它本身嵌入在主窗口。所以,父母和孩子之间的关系如下(只是有点简化):
的QMainWindow()>> QFrame()>>的QTextEdit()
我实现了一些基本的语法高亮,使用来自PyQt5的QSyntaxHighlighter()
类。这很棒 - 但还不够棒。 Bakuriu先生建议我看看QScintilla
包装。现在,我有几个问题挣扎:
问题1:安装QScintilla
这是PyQt的文档,我可以找到有关QScintilla2: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.>>
。所以如果我解释这个权利,我可以通过这种方式获得预构建的Scintilla dll
-文件。但是这个下载页面并没有提到PyQt的任何地方。所以我想知道dll
-文件是否可以在PyQt中使用。毕竟,下载是Scintilla
,而不是QScintilla
。
一旦我得到了dll
文件,我该如何真正使用它来在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)赛特,我将需要得到某种方式启动。如果有人已经在PyQt GUI中嵌入了Scintilla/SciTE,请发布一些示例代码。这将是非常有益的:-)
编辑
几个月来,我又回到了我的这个老问题之后。
QScintilla是一个奇妙的工具,但信息是非常稀少:在此期间,我与我的朋友马蒂奇Kukovec,这导致对如何使用QScintilla一个很好的教程合作。我希望这一举措能够提供非常需要的文件。
谢谢@DisplayName!那么不需要构建和/或安装QScintilla来在我的PyQt5 GUI中使用它?只要进口就足够了?这太棒了 –
对不起,我没有清楚,我没有回答Q1,因为我没有使用Windows,但是,你需要安装它,它不是Qt或PyQt的一部分。例如在Linux上,我会'apt-get install python3-pyqt5.qsci' –
非常感谢。你的回答确实对我有帮助:-) –