Приложения с графическим интерфейсом
В этом разделе мы сначала перечислим библиотеки с виджетами — наборы инструментов и фреймворки, которые предоставляют кнопки, полосы прокрутки, индикаторы выполнения и другие заранее созданные компоненты. В конце раздела коснемся игровых библиотек.
Библиотеки виджетов
С точки зрения разработки графических интерфейсов,
Если вы никогда не занимались разработкой интерфейсов, то вам нужно что-то, что легко использовать (чтобы вы поняли, как создавать интерфейсы). Мы рекомендуем Tkinter (находится в стандартной библиотеке Python). Вас заинтересуют структура и функции набора инструментов, который лежит в основе библиотеки, поэтому мы сгруппируем библиотеки по тулкитам, начав с самых популярных (табл. 7.2).
Таблица 7.2. Библиотеки виджетов для графических интерфейсов
Библиотека, лежащая в основе (язык)
Библиотека Python
Лицензия
Причины использовать
Tk (Tcl)
tkinter
Лицензия Python Software
Foundation
Все зависимости поставляются вместе с Python.
Предоставляет стандартные виджеты для интерфейса вроде кнопок, полос прокрутки, текстовых окон и полотен
SDL2 (C)
Kivy
MIT или LGPL3 (до версии 1.7.2)
Может использоваться для создания приложения для Android.
Имеет функциональность для работы с технологией мультитач.
Оптимизирована для С там, где это возможно, и использует GPU
Qt (C++)
PyQt
GNU General Public License (GPL) или Commercial
На всех платформах выглядит одинаково.
Многие приложения и библиотеки уже полагаются на Qt (например, Eric IDE, Spyder и/или Matplotlib), поэтому библиотека может оказаться установленной заранее.
Qt5 (нельзя использовать вместе с Qt4) предоставляет инструменты для создания приложения для Android
Qt (C++)
PySide
GNU Lesser General
Public License (LGPL)
Полноценная замена для PyQt, имеющая более либеральную лицензию
GTK (C) (тулкит GIMP)
PyGObject (PyGi)
GNU Lesser General
Public License (LGPL)
Предоставляет связывание с Python для GTK+ 3.
Должна быть знакома всем, кто уже разрабатывал для GNOME
GTK (C)
PyGTK
GNU Lesser General
Public License (LGPL)
Применяйте только в том случае, если ваш проект уже использует PyGTK; вы должны портировать старый код PyGTK к PyGObject
wxWindows (C++)
wxPython
Лицензия wxWindows (модифицированная LGPL)
Предоставляет нативный внешний вид, предлагая различные оконные библиотеки для каждой платформы.
Для разных платформ некоторые фрагменты кода будут отличаться
Objective C
PyObjC
Лицензия MIT
Предоставляет интерфейс для работы с Objective C.
Придаст вашему проекту для OS X нативный вид.
Не может использоваться на других платформах
В следующих разделах представлена более подробная информация о разных библиотеках для создания графического интерфейса для Python, они сгруппированы по лежащему в их основе тулкиту.
Tk Модуль стандартной библиотеки Tkinter — это тонкий объектно-ориентированный слой, покрывающий Tk, библиотеку виджетов, написанную на языке Tcl. (Вместе они выглядят как Tcl/Tk83.) Поскольку модуль находится в стандартной библиотеке, он является наиболее удобным и совместимым GUI-тулкитом в нашем списке. Tk и Tkinter доступны на большинстве платформ Unix, а также в Windows и OS X.
На ресурсе TkDocs имеется хорошее руководство по Tk на нескольких языках, содержащее примеры на Python; более подробная информация представлена по адресу http://wiki.python.org/moin/TkInter.
Если у вас есть стандартный дистрибутив Python, у вас должен быть IDLE, графическая интерактивная среда для программирования, написанная исключительно на Python. Она является частью стандартной библиотеки — вы можете запустить ее из командной строки, введя команду idle, или просмотреть ее исходный код. Вы можете найти место, где она установлена, введя следующую команду в оболочке: $ python -c"import idlelib; print(idlelib.__path__[0])"
В нашем каталоге много файлов, основное приложение IDLE запускается из модуля PyShell.py.