вторник, 15 мая 2012 г.

Обзор е-книги. Современный Tkinter для занятых разарбочиков на Python (Перевод)

Я недавно купил книжку Mark Roseman “Modern Tkinter for Busy Python Developers“ на Amazon и как раз вчера её закончил. Я думаю, что она вышла недавно, хотя её релиза я не видел. В любом случае, посмотрим на неё поближе!

Быстрый обзор
  • Почему я её купил: хотел покопаться в других библиотеках для построения GUI на Python, да и новых книг про Tkinter я не видел ещё со времён книги John Grayson’s Python and Tkinter Programming
  • Почему я её дочитал: написана очень хорошо, хотя глава про виджеты и затянута
  • Я рекомендую её… любому, кто хочет сделать свои приложения на Tkinter более адекватными или хочет узнать про новую систему тем в Tkinter.

Формат книги

Судя по тому, что я знаю, это ещё одна книга в формате mobi для Amazon Kindle или того, что понимает этот формат. Согласно данным с Amazon, её объем около 147 страниц и она весит около мегабайта.

Содержание

Главы 1 и 2 дают краткую информацию о проекте. Глава 3 расскажет как установить Tkinter, необходимость чего мне не ясна (так как Tkinter поставляется с Python по умолчанию – примечание переводчика). В этой книге уделено много внимания новой части Tkinter – ttk – которая доступна в 2.7 и 3.х, хотя почти во всей книге автор относит её только к 3.х, что, конечно, странно и вызывает удивление. Более того, Вы даже можете скачать ttk для версий более ранних, чем 2.7, но в комплекте, по крайней мере для Windows, она идёт начиная с версии 2.7

Главы 4 и 5 ознакомят Вас с концепцией Tkinter, с 6 по 8 поговорим про виджеты (в 7 главе Вы узнаете о Grid Geometry Manager). 9 глава расскажет про меню, 10 про окна и диалоги, 11 про планировку, 12 про цвета и рисунки. В главах с 13 по 15 речь пойдёт о больших виджетах: Canva, Text и Tree. В последней, 16 главе, речь зайдёт о темах для вашего приложения.

Обзор

Как я уже отметил, книга написана очень дружелюбно. Я слышал, что Tkinter можно заставить выглядеть хорошо, но нововведения в Tk 8.5+ (добавленные в Python 2.7+) позволяют Вам добиться этого эффекта с меньшими усилиями. Виджеты ttk стали выглядеть более естественно, и более того, похоже что Вы сами можете настраивать их внешний вид.

Среди недостатков стоит отменить некоторые места, которые автор помечал как требующие доработки. Видимо, он хотел что-то туда добавить и либо забыл, либо забыл убрать пометку. Например, в шестой главе Вы прочтёте, что данные для ComboBox можно представить в виде списка, о чём будет рассказано подробнее в разделе про ListBox, но вдруг выясняется, что Tkinter вообще не даёт такой возможности. В итоге Вам приходится выкручиваться самому. И хотя автор подкидывает несколько идей, он не иллюстрирует их. На мой взгляд, это должно быть что-то вроде способа для wxPython, который я описывал здесь, но не так нет.

Некоторые способы настройки Tkinter либо описаны неясно, либо вообще странно, типа “step ?amount?”. Я не знаю, нужен ли тут знак вопроса, но думаю, что вряд ли. Более того, тут почти нет примеров, демонстрирующих работу тех или иных настроек. Так что после чтения всего этого у Вас всё ещё останется впечатление, что это не интуитивно и не последовательно.

С другой стороны, книга содержит много полезной информации в сжатой форме. Мне даже захотелось снова попробовать Tkinter для того, чтобы посмотреть на деле, что он может и, может быть, написать о нём пару статей. Мой вердикт: если вы хотите познакомиться с ttk, эта книга для Вас, ибо ничего другого по этой теме (кроме документации) у Вас всё равно нет. Только имейте ввиду, что примеров тут крайне мало, и Вы всё равно не увидите, как создать свою тему, Вы просто получите достаточно для этого информации. Так что если Вы только начали заниматься GUI на Python и выбрали Tkinter – книгу в руки и вперёд.

Источник

Комментариев нет:

Отправить комментарий