Найти в Дзене

Программирование на языке Python. Графика в tkinter (Canvas), вывод текста

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

Векторная графика в tkinter, вывод текста на Canvas

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

Сегодня рассмотрим такой объект на Canvas, как текст. Кроме того рассмотрим некоторые возможности и приёмы работы с объектами на Canvas. Лишний раз подчеркну, что почти всё здесь может быть отнесено и к другим графическим объектам.

В окне программы в середине помещается текст (рисунок 2). При наведении курсора мыши на него, меняется его цвет и текст слегка сдвигается влево и вверх. При уходе курсора текст возвращается на своё место. Скриншот текста программы представлен на рисунке 1.

Рисунок 1. Вывод текста на Canvas как объекта. Текст программы см. ниже по ссылке
Рисунок 1. Вывод текста на Canvas как объекта. Текст программы см. ниже по ссылке
primer359.py

Пояснение к программе

  • Объект текст создаётся методом Canvas.create_text(). Указываются координаты: верхний левый угол прямоугольника, где помещается текст. Также сам текст, цвет текста и шрифт.
  • А далее мы хотим обрабатывать наведение курсора мыши на текст, точнее на прямоугольник, в котором вписан этот текст. Здесь излагается один вариантов такой обработки. Мы отслеживаем движение мыши по Canvas: self.cnv.bind("<Motion>", self.mov).
  • В качестве параметра в метод mov() передаётся объект, содержащий координаты курсора мыши.
  • С помощью Canvas.bbox() можно получить координаты прямоугольника, куда вписан данный объект.
  • С помощью Canvas.itemconfigure() мы задаём цвет текста.
  • С помощью Canvas.coords() мы задаём координаты текста. Тем самым мы можем двигать объект по холсту.
Рисунок 2. Графический текст в окне
Рисунок 2. Графический текст в окне

Рисунок 3. Графический текст в окне с наведённым курсором мыши
Рисунок 3. Графический текст в окне с наведённым курсором мыши

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

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

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