2016-07-06 1 views
0

- 主に楽しみのために!私はPythonですべてを書き、PyQt5ライブラリを使ってGUIを構築します。ここ自作のPyQt GUIに「QScintilla」コードエディタを埋め込む方法は?私は小さなIDEを作ってるんだ

現在の状態のスクリーンショットである:

enter image description here

コードエディタ自体はシンプルQTextEdit()ウィジェット - QFrame()ウィジェットに埋め込まれ、メインウィンドウに埋め込まれ、それ自体。だから、親子関係の親は、次のとおりです。(少しだけ単純化された):

QMainWindow()私が使用して、いくつかの基本的な構文の強調表示を実装>> QFrame()>> QTextEdit()

PyQt5のクラスQSyntaxHighlighter()。それは素晴らしかったですが、まだ素晴らしいものではありません。 Bakuriu氏は、私に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 -fileを得れば、どのように私は実際にQFrame内部QScintillaエディタを埋め込むためにそれを使うのですか?


質問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のがインストールされると、私は何とか始める必要があります。 PyQt GUIにScintilla/SciTEを既に埋め込んでいる人は、サンプルコードを投稿してください。それは私が私のこの古い質問に戻ってきた数ヶ月後


EDIT
:-)非常に参考になります。一方で、私はQScintillaを使用する方法の素敵なチュートリアルになった私の友人マチックKukovec、と協力しています

enter image description here

https://qscintilla.com/

QScintillaは素晴らしいツールですが、情報が非常に不足しています。私はこのイニシアチブが必要とされる多くの文書を提供できることを願っています

答えて

1

Q1:

QScintillaとPythonバインディングをインストールする必要があります。私はWindowsについてはわかりませんが、pipで利用できるようです。

Q2:

シンチラはエディタウィジェットです。 SciTEは、Ruby言語でスクリプト化可能なエディタウィジェットを使った完全なアプリです。 QScintillaは、ScintillaエディタウィジェットのQtポートです。

Q3:あなたは、単に実行できるように

QsciScintillaオブジェクトは、QWidgetのサブクラスである:

from PyQt5.QtWidgets import QApplication 
from PyQt5.Qsci import QsciScintilla 

app = QApplication([]) 
sci = QsciScintilla() 
sci.show() 
app.exec_() 
+0

@DisplayNameありがとうございました! PyQt5のGUIでQScintillaを使用するためにQScintillaをビルドする必要はありませんか?ちょうど輸入で十分ですか?それは素晴らしいです –

+0

申し訳ありませんが私は十分に明確ではなかった、私はWindowsを使用しないためQ1に答えなかったが、はい、あなたはそれをインストールする必要がある、それはQtやPyQtの一部ではありません。たとえばLinuxで 'apt-get install python3-pyqt5.qsci'を実行します。 –

+0

ありがとうございます。あなたの答えは本当に助けになりました:-) –

1

はあなたにMr./Mssをありがとうございます。あなたの答えの@DisplayName。私はそれが働いて、私はWindowsユーザーのためにここで少しのサイドノートを入れます。

  • のWindows 10、64ビットOS
  • アナコンダパッケージインストール(Pythonの3.5)をインストール
  • PyQt5
https://www.riverbankcomputing.com/software/pyqt/download5から .exeインストーラをダウンロードしてください):次のように

私のシステムがあります

_

S TEP 1:

QScintilla-2.9.2-cp35-none-win_amd64.whlhttps://pypi.python.org/pypi/QScintillaからダウンロードします。私たちは、QScintillaのインストールを行うには、この.whlファイルを使用します

\ \ .. \アナコンダ\スクリプト:

C: フォルダ内のファイルを置きます。

_

STEP 2:

を開き、管理者権限でWindows cmdツール!今すぐ次のコマンドを入力してください:

> cd "C:\..\Anaconda\Scripts" 

これはcmdシェルを正しい場所に持ち込みます。

私は取得できませんでした:今、次のコマンドを入力します。3

> pip3 install QScintilla 

    Collecting QScintilla 
     Downloading QScintilla-2.9.2-cp35-none-win_amd64.whl (1.6MB) 
     100% |################################| 1.6MB 984kB/s 
    Collecting PyQt5 (from QScintilla) 
     Downloading PyQt5-5.6-cp35-none-win_amd64.whl (74.7MB) 
     100% |################################| 74.7MB 23kB/s 
    Collecting sip (from PyQt5->QScintilla) 
     Downloading sip-4.18-cp35-none-win_amd64.whl (46kB) 
     100% |################################| 51kB 5.7MB/s 
    Installing collected packages: sip, PyQt5, QScintilla 
    .. 
    Successfully installed PyQt5-5.6 QScintilla-2.9.2 sip-4.18 

_

STEP:すべてがうまくいけば

> pip3 install QScintilla 

を、次のようなメッセージが表示されます最初のショットから「正常にインストールされました」というメッセージが表示されます。アクセスすることができませんでした

PermissionError: [Errno 13] Permission denied: 'C:\..\anaconda\Lib\site-packages\sip.pyd' 

どうやらファイルsip.pydディレクトリC:\..\anaconda\Lib\site-packagesに座っ:代わりに、私は、次のエラーメッセージが表示されました。 (!管理者権限で再びもちろん)だから私は、別のWindowsコマンドシェルを開き、次のコマンドを入力:

> icacls "C:\..\Anaconda\Lib\site-packages" /grant "Administrators":(OI)(CI)F /T 

このコマンドは(読み - 変更し、書き込み)フルアクセス権を与えるために、すべての「管理者」のユーザーにsite-packagesフォルダー内のすべてのファイル、およびそのサブフォルダー内のすべてのファイル。このコマンドが実行されている間、次のメッセージが表示されます。

... 
    processed file: C:\..\Anaconda\Lib\site-packages\__pycache__\readline.cpython-35.pyc 
    processed file: C:\..\Anaconda\Lib\site-packages\__pycache__\simplegeneric.cpython-35.pyc 
    processed file: C:\..\Anaconda\Lib\site-packages\__pycache__\six.cpython-35.pyc 
    processed file: C:\..\Anaconda\Lib\site-packages\__pycache__\test_path.cpython-35.pyc 
    processed file: C:\..\Anaconda\Lib\site-packages\__pycache__\test_pycosat.cpython-35.pyc 
    ... 

    Successfully processed 38589 files; Failed processing 0 files 

これでステップ2を繰り返すことができます。

関連する問題