Вторник
21.05.2024, 02:57
| RSS
Главная
Меню сайта

Категории раздела
Madriva [3]
Ubuntu (KUbuntu, EdUbuntu, XUbuntu) [78]
SUSE [1]
Fedora Core [9]
ASPLinux [1]
Debian [16]
Gentoo [3]
Другие [167]

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 45

Статистика

Rambler's Top100Рейтинг@Mail.ru

Главная » 2009 » Март » 20 » Нормальный русский шрифт в Tk-приложениях
Нормальный русский шрифт в Tk-приложениях
21:54

Как известно, есть такая библиотека для графических интерфейсов, Tk. На Tcl/Tk легко писать скрипты с графическим интерфейсом. Так же Tk используется в качестве стандартной (доступной по умолчанию на всех платформах и не требующей установки) графической библиотеки в Python. Приложений написанных с использованием Tk довольно много. Раз читаете этот пост — значит, видели (смотрим, например, aptitude search ~Dpython-tk и aptitude search ~D^tk).

Однако русским пользователям Debian и Ubuntu с Tk явно не повезло. По умолчанию, из коробки, русские буквы в ней отображаются очень криво. Вот, к примеру простейшее приложение-однострочник:

$ echo 'button .b -text "привет, world!" ; pack .b ' | wish
и наблюдаем вот такой результат:



Хороших слов для таких шрифтов не находится. Такое ощущение, русские буквы берутся из какого-то китайского шрифта, при этом никакого сглаживания и хинтинга. Проблема настолько острая, что даже разобрана в LOR Wiki. В случае Tcl/Tk достаточно начать использовать Tk 8.5 вместо 8.4. В Debian/Ubuntu это делается так:
$ sudo update-alternatives --config wish 

Есть 3 альтернатив, которые предоставляют `wish'.

Выбор Альтернатива
-----------------------------------------------
* 1 /usr/bin/wish8.4
+ 2 /usr/bin/wish-default
3 /usr/bin/wish8.5

Нажмите enter, чтобы сохранить значение по умолчанию[*], или введите выбранное число: 3
Используется `/usr/bin/wish8.5' для предоставления `wish'.
Повторяем наш проверочный пример, и получаем вполне пристойный результат:



Понятно, что перед этим нужно поставить пакеты tcl8.5 и tk8.5. Это минутное дело.

Однако приложениям на Python, использующим Tk, вышеописанный фокус не поможет. В Debian (Lenny) и Ubuntu (Hardy, Intrepid) пакет python-tk собран с поддержкой только tk8.4, то есть по-умолчанию такие приложения выглядят вот так:



Чтобы это исправить, нужно поставить пакет python-tk собранный с поддержкой Tk 8.5. В Debian такой пакет есть, но только в experimental. Я скачал оттуда pytnon-tk 2.5.4-1 и нужный ему blt 2.4z-4 вручную и поставил. Никаких лишних зависимостей они не тянут, а Tk-приложения обретают новую жизнь:



В Ubuntu (Intrepid) ситуация похожая. Пакет python-tk собранный с Tk 8.5 повляется лишь в Jaunty. И сразу python-tk 2.6.1-0ubuntu1. Конечно, в таких случаях религия предписывает пересобирать пакет самостоятельно, но, как ни странно, если поставить его на машину с Intrepid, то он отлично уживается с обычным Python 2.5, за собой никаких зависимостей не тянет, и у меня лично вроде всё работает. В качестве другого «халявного» варианта можно поставить на машину с Intrepid python-tk и blt из Debian. Вроде тоже работает.

Источник: http://sovety.blogspot.com/2009/03/cyrillic-fonts-in-tcltk-and-pythontk.html
Категория: Ubuntu (KUbuntu, EdUbuntu, XUbuntu) | Просмотров: 844 | Добавил: tol | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

  • Администрация

    Andry


    Tol


    Copyright MyCorp © 2024
    Хостинг от uCoz