私は小さな IDE を作っています - 主に楽しみのためです! すべてを Python で記述し、PyQt5 ライブラリを使用して GUI を構築します。
現在のステータスのスクリーンショットは次のとおりです。
コード エディター自体は、メイン ウィンドウに埋め込まれているウィジェットにQTextEdit()
埋め込まれた単純なウィジェットです。QFrame()
したがって、親と子の関係は次のようになります (少し単純化されています)。
QMainWindow( ) >> QFrame( ) >> QTextEdit( )
QSyntaxHighlighter()
PyQt5のクラスを使用して、いくつかの基本的な構文の強調表示を実装しました。それは素晴らしいことですが、まだ素晴らしいとは言えません。QScintilla
バクリウさんは、パッケージを見てみるようにアドバイスしてくれました。今、私はいくつかの質問に苦労しています:
質問 1: QScintilla のインストール
これは、QScintilla2 について見つけることができる PyQt ドキュメントです: http://pyqt.sourceforge.net/Docs/QScintilla2/。どうやら Windows では、QScintilla2 のソース コードをダウンロードしてdll
-file にビルドする必要があるようです。もっと便利な方法はありませんか?たとえば、ビルド済みのパッケージ (インストーラー付き) はありますか?
このダウンロード ページも見つけました: 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
-file が PyQt で機能するかどうか疑問に思っています。結局のところ、ダウンロードはScintilla
であり、 ではありませんQScintilla
。
ファイルを取得したら、dll
実際にそれを使用して QScintilla エディターを QFrame 内に埋め込むにはどうすればよいですか?
質問 2: Scintilla と SciTE のどちらですか?
Scintilla (および QScintilla) について読んでいて、SciTE に出くわしました。誰かがこのソフトウェアの素晴らしいインストーラーを作成しました: http://www.ebswift.com/scite-text-editor-installer.html。私の PyQt GUI に SciTE を埋め込むことをお勧めしますか? もしそうなら、プレーンな「SciTE」の代わりに「QSciTE」が必要ではないでしょうか?
質問 3: いくつかのサンプル コード
(Q)Scintilla または (Q)SciTE をインストールしたら、何らかの方法で開始する必要があります。既に Scintilla/SciTE を PyQt GUI に埋め込んでいる場合は、サンプル コードを投稿してください。それは非常に役に立ちます:-)
編集
数か月後、私はこの古い質問に戻ってきました。それまでの間、私は友人の Matic Kukovec と協力して、QScintilla の使用方法に関する素晴らしいチュートリアルを作成しました。
QScintilla はすばらしいツールですが、情報が非常に不足しています。このイニシアチブが、非常に必要とされているドキュメントを提供できることを願っています。