Ligm.Editor создан для демонстрации встраивания в приложения PyQt простого редактора.


Встраиваемый редактор позволяет работать:



В обоих режимах (текстовом и HTML) есть возможность проверки орфографии для английского и русского языков, предварительный просмотр и печать документа, экспорт в pdf. Для поиска и замены текста используются комбинации клавиш Ctrl-F, Ctrl-R, [Shift-] F3. Кроме указанных комбинаций действуют комбинации Ctrl-S и F2 для сохранения, Ctrl-D, Ctrl-T для вставка даты и времени, Ctrl-P-печать.

Если в системе по умолчанию установлена русская кодировка, то работает автоматическое переключение языка ввода (Ctrl-L - включение/отключение автоматической замены) и замена текста набранного не в той кодировке (F-12).


Внешний вид редактора:


Рис. 1 - пример документа с таблицей и картинкой




Рис. 2 - пример исправления ошибок в тексте




Рис. 3 - пример исходного кода (Python)




Рис. 4 - пример исходного кода (SQL)



Зависимости.


Для работы необходим Python 3.7+, PyQt5.



Установка.


pip install ligm.editor

pip install ligm.spell (словари для проверки орфографии)

После установки, выполните в терминале ligm.editor для запуска демонстрационного приложения.


Для установки только встраиваемого редактора, без демонстрационного приложения:

pip install ligm.core



Пример использования.


from PyQt5.Qt import QApplication


from ligm.core.text import TextEditor

from ligm.core.qt import install_translators

from ligm.core.common import SimpleConfig


filename= "example.html"


def load():

with open(filename, encoding="utf-8") as f:

return f.read()


def save(txt):

with open(filename, "w", encoding="utf-8") as f:

f.write(txt)

app = QApplication([])

install_translators()

cfg = SimpleConfig()

editor = TextEditor(None, cfg, save=save, load=load, auto_load=True)

editor.setGeometry(100, 100, 600, 500)

editor.show()

app.exec()



Методы класса ligm.core.text.TextEditor


Конструктор класса:



save(txt) - сохранение текста (вызывает переданный в конструкторе метод, если метод возвращает значение отличное от None, то подразумевается, что он вызван неудачно)


load - загрузка текста в редактор (вызывает переданный в конструкторе метод)


set_option - установка состояния редактора



get_option(name) - возвращает состояния редактора

name="word-wrap" - включен ли перенос слов

name="readonly" - состояние режима только для чтения


search(text="", show_msg=True) - запуск поиска текста, переданного в параметре text, либо (если text="") указанного в строке поиска


get_text() - текст в редакторе (зависит от формата).


is_empty() - проверка наличия данных в документе.