我在做一個小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' –
非常感謝。你的回答確實對我有幫助:-) –