Я делаю небольшую IDE - в основном для удовольствия! Я пишу все в Python и использую библиотеку PyQt5 для создания графического интерфейса.Как вставить редактор кода «QScintilla» в самодельный графический интерфейс PyQt?
Вот скриншот текущего состояния:
Сам редактор кода является простой QTextEdit()
виджет - встроенный в QFrame()
виджет, который сам встраивается в главном окне. Таким образом, родитель отношения ребенка выглядит следующим образом (только немного упрощенный):
QMainWindow() >> QFrame() >> QTextEdit()
Я реализовал некоторые основные подсветку синтаксиса, используя QSyntaxHighlighter()
класс от PyQt5. Это здорово - но еще не удивительно. Г-н Бакуриу посоветовал мне взглянуть на пакет 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
, как его использовать, чтобы встроить редактор QScintilla внутри QFrame?
Вопрос 2: Scintilla или SciTE?
Чтение о Scintilla (и QScintilla) Я наткнулся на SciTE. Кто-то сделал хороший установщик для этого программного обеспечения: http://www.ebswift.com/scite-text-editor-installer.html. Было бы целесообразно встроить SciTE в мой графический интерфейс PyQt? И если это так - мне не нужен «QSciTE» вместо простого «SciTE»?
Вопрос 3: Некоторые примеры кода
После (Q) Scintilla или установлена (Q) SciTE, мне нужно будет начать как-то. Если кто-то уже встроил Scintilla/SciTE в графический интерфейс PyQt, отправьте примерный код. Это было бы очень полезно :-)
EDIT
Через несколько месяцев я вернулся к этому старому моему вопросу.В то же время, я сотрудничал с моим другом Matic Kukovec, в результате которого хороший учебник о том, как использовать QScintilla:
QScintilla является прекрасным инструментом, но информация очень мало , Я надеюсь, что эта инициатива может обеспечить столь необходимую документацию.
спасибо @DisplayName! Так что не нужно строить и/или устанавливать QScintilla для использования в моем графическом интерфейсе PyQt5? Просто импорт достаточно? Это потрясающе –
жаль, что я не был достаточно ясен, я не ответил Q1, потому что я не использую окна, но да, вам нужно установить его, это не часть Qt или PyQt. Например, на linux я бы сделал 'apt-get install python3-pyqt5.qsci' –
Большое спасибо. Ваш ответ действительно помог мне :-) –