Найти тему
programmer's notes (python and more)

Программирование на языке Python. Библиотека tkinter, простой редактор текста (Text)

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Создание простого текстового редактор с помощью объекта tkinter.Text библиотеки tkinter

В библиотеке tkinter есть очень не плохой текстовый редактор, реализуемый через класс tkinter.Text. Попробуем использовать этот инструмент для создания простого редактора.

Ниже представлена программа, реализующая простые функции редактора (hbceyrb 1-2). На рисунках 3-4 представлены окна редактора. Реализованы следующие функции: 1. Набор текста. 2. Сохранение текста в файл. 3. Загрузка текста из файла. 4. Откат действий (undo). 5. Восстановление действий (redo). 6. Очистка редактора.

Рисунок 1. Начало программы, реализующей простые функции текстового редактора. Весь текст программы см. ниже по ссылке
Рисунок 1. Начало программы, реализующей простые функции текстового редактора. Весь текст программы см. ниже по ссылке
Рисунок 2. Вторая половина программы, реализующей простые функции текстового редактора. Весь текст программы см. ниже по ссылке
Рисунок 2. Вторая половина программы, реализующей простые функции текстового редактора. Весь текст программы см. ниже по ссылке
primer355.py

Пояснения к программе - текстовом редакторе

  • Не буду останавливать на меню (tkinter.Menu), так как в предыдущей статье эта тема изложена достаточно полно. В данной программе реализован двухуровневый вариант меню.
  • Также, если подзабыли, да ссылку на статью с операциями над файлами.
  • Для того, чтобы привязать полосу прокрутки к редактору нужно в начале создать объект, выполнив конструктор: sc=tk.Scrollbar(), а потом сделать привязку: yscrollcommand=sc.set.
  • При создании редактора устанавливаем перенос по словам: wrap="word".
  • Для открытия и сохранения файлов используем стандартные диалоговые окна tkinter: filedialog.asksaveasfilename(), filedialog.askopenfilename().
  • Для управления текстом используем набор методов объекта tkinter.Text(): 1. Удаление текста Text.delete(). При этом первый параметр указывает на на начало удаляемого файла с указанием строки и символа, второй параметр указывает на конец удаляемого фрагмента. 2. Получить текст из текстового редактора: Text.get(), при этом как и в предыдущем случае параметрами указывается начало и конец получаемого файла. 3. Text.insert() - вставка текста в текущее положение в тексте. 4. Text.edit_undo() - откатить последнее действие. 5. Text.edit_redo() - восстановить последнее действие.
  • Наконец отмечу обработку нажатия клавиш (ctrl+z, ctrl+x). Мы связываем нажатие клавиши в окне self.bind('<KeyPress>', self.key), но можно сделать связав нажатие в поле самого редактора self.text.bind('<KeyPress>', self.key).
Рисунок 3. Окно простого редактора
Рисунок 3. Окно простого редактора
Рисунок 4. Окно простого редактора с открытым меню
Рисунок 4. Окно простого редактора с открытым меню

Пока всё! Продолжение следует...

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Вы любите читать? Нет, я в основном пишу
Вы любите читать? Нет, я в основном пишу