Почему все примеры tk в дистрибутиве Python написаны на TCL? - PullRequest
3 голосов
/ 12 августа 2009

Не поймите меня неправильно, я не совсем фанат Python, но когда вы видите каталог Tk внутри каталога python, вы как бы ожидаете ... Ну, Python. И да, я понимаю, что Tk пришел из TCL, но если бы мне пришлось написать TCL для использования Tk, я бы забыл, что TK существует, и использовал бы совершенно другой набор инструментов. (Популярность этой комбинации полностью ускользает от меня.)

Ожидание увидеть относительно читаемый язык, такой как Python, и найти TCL - все равно что ходить на голой бабушке. Это просто визуально больно.

Я не пил классную помощь, когда дело доходит до Python, но я использую для простых задач, которые я не хочу беспокоиться о C или C ++, и, возможно, если я хочу, чтобы некоторые из них для быстрой и грязной обработки текста. Просто кажется жестокой шуткой помещать примеры TCL в дистрибутив Python.

Существует ли эквивалентный пакет, включающий эти примеры, написанные на Python?

Edit: Я думаю, это также напрашивается, вопрос в том, является ли Tk лучшим вариантом для разработки GUI в Python?

Ответы [ 3 ]

3 голосов
/ 12 августа 2009

В официальном выпуске Python нет примеров Tcl; любой дистрибутив, который вы используете, должен был связывать их по собственному желанию.

ИМХО, единственное реальное преимущество Tk на данный момент - это удобство, связанное с его связью с Python. Меня критиковали за то, что он освещал это в «Python in a Nutshell», но я поддерживаю это решение, потому что он все же является «1003 *» по-прежнему «1004 *» в комплекте. Но если вы хотите чего-то лучшего и не возражаете против того, чтобы его доставить (и, возможно, связать с приложениями, которые вы распространяете), есть несколько отличных вариантов.

PyQt (если вы можете выдержать лицензию GPL или заплатить за коммерческую) и wxPython - это IMHO в настоящее время превосходные предложения для кросс-платформенных приложений с графическим интерфейсом (хотя у вас будет работать, чтобы связать их с py2exe или PyInstaller, если вы хотите распространять автономное приложение), и другие пакеты отлично подходят, если вы не заботитесь о кроссплатформенном распространении или у вас есть специальные потребности (например, pyui - - хотя теперь это универсальный инструментарий пользовательского интерфейса - для простых пользовательских интерфейсов для игр, если вы все равно используете PyGame или PyOpenGL).

2 голосов
/ 12 августа 2009

Возможно, вам следует начать с просмотра документации Python Tkinter здесь и вики Tkinter здесь .

А где вы видите примеры Tcl? Возможно, вы смотрите на библиотеку Tcl, поставляемую с Python?

0 голосов
/ 31 декабря 2015

TCL / TK - это простой язык для понимания, с помощью которого приложения делаются очень простыми, очень быстро занимающими очень мало ресурсов и аппаратной платформы для работы на всех платформах.

В TCL / TK существует также starkits или freewrap , позволяющий оборачивать библиотеки, код и другие файлы в один пакет, который легче переносить на другие платформы и запускать и устанавливать , без необходимости приносить все библиотеки приносит язык.

В то время как оценщику TCL / TK требуется 3 МБ, питону требуется гораздо больше, и он использует гораздо больше, чем неиспользуемые библиотеки.

Когда эти приложения растут, логично сначала перейти на python и поделиться графическим интерфейсом с помощью Tkinter, затем они могут перейти к другому графическому интерфейсу как QT или Wxwidgets, чтобы работать быстрее.

Кто хочет программировать с Tkinter, вы должны знать, как работает TCL и графический интерфейс TK, с помощью которого сделаны tkinter.

Сегодня здесь нет другого графического интерфейса библиотечного модуля, который можно было бы использовать как tkinter в одном файле, который позволяет кросс-платформенным приложениям оставаться небольшими и модульными для всех основных проектов Python.

Хотя tkinter составляет 2 МБ, wxwidget - 80 МБ, и если вы берете калькулятор, блокнот или приложение для рисования, вам понадобится небольшой графический интерфейс, который легко внедрить в ваши проекты.

Кроме того, на сегодняшний день приложения Tkinter работают быстрее и лучше на небольших устройствах с ограниченным аппаратным обеспечением, ARM или raspberry o, но wxwidgets становится медленным.

Если ваше приложение простое и маленькое, а ваша платформа не устойчива, выбирайте Tkinter, но если оно большое и тяжелое, а платформа с большим количеством ресурсов выбирает wxwidget o QT.

...