Текст в PyCairo [Урок №9]

В данной части материала мы будем работать с текстом. В первом примере мы покажем текст одной песни.

В данном коде мы показали часть текста песни Наташи Бедингфилдс – Soulmate.

Здесь мы выбрали шрифт. Метод принимает три параметра: семейство шрифта, его наклон и вес.

Здесь мы определяем размер шрифта.



Текст в окне отображен путем выбора позиции текста и вызова метода show_text().

Текст в PyCairo [Урок №9]

Центрирование текста

Далее мы покажем, как центрировать текст в окне.

Данный код центрирует текст в окне. Текст остается в центре, даже если размер окна меняется.

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

Мы выбираем шрифт и его размер для отображения.

Мы получили экстенты текста. Здесь приведены числа, описывающие текст. Нам нужна ширина текста для нашего примера.

Мы позиционируем текста в центре окна и отображаем его при помощи метода show_text() .

Текст в PyCairo [Урок №9]

Текст с тенью

В данном примере мы создадим текст с тенью в нашем окне.

Для того, чтобы создать тень, нам нужно написать текст дважды, разными цветами. Второй текст будет смещен чуть правее и ниже.

Есть вопросы по Python?

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

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Первый текст написан черным цветом и будет служить в качестве тени.

Для второго текста мы выбираем серый цвет. Он смещён на 3 пикселя вправо и вниз.

Текст в PyCairo [Урок №9]

Градиентный текст

В следующем примере мы интересный эффект. Мы заполним текст линейным градиентом.

Мы написали текст в окне и залили его линейным градиентом. В качестве цвета были выбраны оттенки оранжевого.

Чтобы сделать его визуально более привлекательным, мы закрасим задний фон темно-серым цветом.

Линейный градиент создан.

Текст отображается в окне, мы выбрали градиент в качестве исходника для рисования.

Текст в PyCairo [Урок №9]

Пропись по буквам

В данном эффекте текст будет прописан побуквенно. Буквы будут прописаны с небольшой задержкой.

В нашем примере мы напишем строку «ZetCode» в окне GTK по буквам с небольшой задержкой.

Вот список букв, которые будут отображаться в окне.

Мы выбираем шрифт Courier и выделяем его жирным.

Здесь мы прописали текст по буквам. Мы получили ширину каждой буквы и вычисляем расстояния на оси Х.

Глиф

Метод show_text()  подходит только для простого рендеринга текста. Разработчики Cairo называют его игрушечным. Рендеринг на более профессиональном уровне выполняется с применением глифа. Глиф – это графический символ, определяющий форму символа. Символ, в свою очередь, определяет значение и может сочетать в себе несколько глифов. Сам по себе символ не имеет вида, также как и глиф, сам по себе, не имеет значения.
Обратите внимание на то, что множество базовых программных требований, обращенных к тексту, рассматриваются библиотекой Pango.

Данный код демонстрирует 700 глифов выбранного шрифта.

Список глифов хранится в качестве трех целых чисел. Первое число является индексом глифа выбранного типа шрифта. Второе и третье число являются позициями осей глифа Х и Y.

Метод show_glyphs()  отображает глифы в окне.

Текст в PyCairo [Урок №9]