[Comm] шрифты в интерфейсе tk/tcl-программ
Vadim V. Zhytnikov
=?iso-8859-1?q?vvzhy_=CE=C1_netorn=2Eru?=
Ср Ноя 8 19:14:41 MSK 2006
Maxim Tyurin пишет:
> Vadim V. Zhytnikov пишет:
>> Maxim Tyurin пишет:
>>
>>> А там вроде и нет механизма. Берется первый шрифт подходящий под описание.
>>> Просто описания в основном состоят из *
>>> Поэтому и берется что попадется первым. А первым часто попадается всякая
>>> гадость.
>>>
>> Ну почему тогда в Mandrake русский совсем из другого семейства а не
>> из гельветики? Почему в Сизифе английский масштабируется а Русский нет?
>> Как-то это всё это очень странно. На код что-ли глянуть и посмотреть
>> что он там действительно выбирает? Хотя ей-ей жалко времени...
>
> Я ошибся. Учил tk по старым книгам.
> Начиная с tk 8.0 спользуется подстановка шрифтов если шрифт указан в
> новом формате (типа -font {helvetica 12 bold} ). Причем подстановка
> выполняется для каждого символа - tk обращается с каждому шрифту и
> узнает может ли он отобразить нужный символ. И параметры шрифта могу
> быть изменены. В принципе заточено на то чтоб программист не напрягался
> выбором шрифта чтоб отобразить что нужно. Только красивости прийдется
> добиваться самому.
>
> Если шрифт указан в формате X Window то подстановка не выполняется -
> берется первый шрифт подходящий под паттерн.
> Если подходящий шрифт не найден будет ошибка.
>
> P.S. Что tcl/tk творит со шрифтами можно немного понять посмотрев вывод
> font names выведет доступные имена шрифтов
> font actual описание_шрифта выведет параметры соотв. характеристикам
> указанного шрифта
> font metrics описание_шрифта выведет метрики (инфу о размерах) шрифта.
>
> P.P.S. Вроде сейчас все точно описал.
>
Спасибо за информацию. Я сам на Tcl/Tk реально не программирую.
Так - пришлось столкнуться с уже готовым софтом и чуть-чуть его
подкручивать. В частности, локализовать. Вот тут и нехал на
прелести со шрифтами. Книг по Tcl/Tk не читал - брал информацию
из on-line документации на сайте Tcl/Tk.
--
Vadim V. Zhytnikov
<vvzhy на mail.ru>
<vvzhy на netorn.ru>
Подробная информация о списке рассылки community