Новость из категории: Информация

Знакомство с Tcl/Tk: темы и стили

Содержание:
1. Введение;
2. Первый пример;
3. Обработка событий;
4. Виджеты;
5. Темы и стили (Вы читаете данный раздел).
Знакомство с Tcl/Tk: темы и стили

Огромным шагом вперед по сравнению с предыдущими версиями стало появление в Tk 8.5 стилей и тем. Концепция стилей отдельных виджетов и их элементов и соответствующие команды достаточно запутанны, и я не буду их касаться. Детальное описание и обсуждение возможностей и ограничений стилей имеется в документации (http://www.tkdocs.com/tutorial/styles.html). В отличие от стилей концепция тем интуитивно понятна всем, кто хоть раз имел дело с темами в KDE/GNOME или в таких программах, как Firefox. Получить список доступных тем можно так:
puts [ttk::style theme names]

Применить выбранную тему можно «на лету» в любой момент:
ttk::style theme use тема

В Windows и MacOS Tk 8.5 поддерживает темы с «родными» виджетами, поэтому на этих платформах программы на Tk прекрасно интегрируются в систему. В Linux ситуация несколько сложнее, поскольку не существует единого набора виджетов для всех рабочих сред. Тема по умолчанию, используемая в Linux, выглядит намного лучше, чем «старые» виджеты, но все же невыгодно выделяется на фоне остальных программ. В последнее время наконец-то появились работоспособные темы tilegtk и tileqt, использующие «родные» виджеты GTK+ 2 и Qt 4 (http://www.ellogon.org/petasis/content/view/29/45). Эти темы находятся на стадии беты и пока не входят ни в один дистрибутив, но их достаточно легко установить вручную. Приведенные ниже шаги относятся к tilegtk 0.2 в Ubuntu:
- Для 32-битных систем скачиваем бинарную сборку tilegtk с http://www.ellogon.org/petasis/component/option,com_docman/task,doc_download/gid,67/Itemid,37/. Для 64-битных систем tilegtk придется компилировать вручную по инструкциям, приведенным на том же сайте.
- Распаковываем архив и копируем директорию tilegtk0.2 туда, где Tk сможет ее найти:
sudo cp -r tilegtk0.2 /usr/share/tcltk/tcl8.5

- В программе, где планируется использовать tilegtk, пишем:
package require Tk
package require ttk::theme::tilegtk
ttk::style theme use tilegtk

Если все прошло успешно, то программа практически не будет отличаться от «родных» приложений GTK+ (на рис. ниже показаны три копии нашей программы, запущенные с разными темами). Нужно сказать, что текущая версия tilegtk еще очень «сырая» и может некорректно работать со многими темами GTK+, особенно использующими темный фон и инвертированный текст для виджетов.

Знакомство с Tcl/Tk: темы и стили
Различия между темами. Слева направо: «старые» виджеты, тема ttk по умолчанию и tilegtk (тема GTK+ Shiki Mint)


Выводы

Tk по праву считается одной из самых простых полностью кроссплатформенных библиотек для создания пользовательского интерфейса. По базовым возможностям она мало в чем уступает таким «китам», как GTK и Qt, но при этом гораздо проще в освоении. Использование динамического языка позволяет легко конструировать и модифицировать интерфейс «на лету» и даже генерировать его автоматически в зависимости от входных данных. Некрасивые «старые» виджеты Tk уже ушли в прошлое, а их современные аналоги выглядят вполне презентабельно и могут использовать «родные» виджеты различных платформ. Если язык Tcl кажется слишком экстравагантным, то можно использовать интерфейсы Tk для Python, Ruby или Perl (хотя они и не так блестяще интегрированы в язык, как в случае Tcl).



Итак, с Tcl/Tk мы на сегодня закончили, а теперь давайте поговорим про

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх