Плюсы и минусы tkinter и wxWidgets?

Я читаю этот учебник, который помогает мне изучать Tkinter и wxWidgets параллельно, но я хочу копать глубоко, поэтому хотел бы знать, какой инструмент GUI лучше изучать в глубине и почему?

2 ответов


невозможно сказать, что "лучше". Либо может использоваться для большинства задач пользовательского интерфейса.

Если бы я мог как-то суммировать в предложении, я бы соблазнился сказать, что Tkinter лучше спроектирован и немного проще в использовании, но wxPython более многофункциональный и выглядит немного лучше.

плюсы tkinter: часть python, ничего лишнего для загрузки. Очень простой синтаксис. Текстовый виджет является удивительно мощным и очень простым в работе. Виджет canvas также очень простой и мощный. Ни один другой инструментарий не обеспечивает такое же сочетание простоты и мощности, как эти два виджета в моем опыте. Использует собственные виджеты на mac и windows. Tk является твердым камнем с несколькими кросс-платформенными особенностями. Я думаю, что механизм связывания Tkinter намного превосходит механизм wxPython; он более гибкий и последовательный. Я думаю, что три менеджера геометрии Tkinter-pack, place и grid - намного мощнее и проще в использовании, чем wxPython классификаторы.

tkinter минусы: использует мотив-подобные виджеты на * Nix коробки, которые многие находят off-puting (хотя некоторые осторожные настройки могут сделать GUIs выглядеть вполне приемлемым). Иногда трудно отлаживать в том, что виджеты Tkinter по своей сути не являются объектами python; tkinter предоставляет оболочку вокруг фактических виджетов tk, что иногда означает, что вы получаете странные сообщения об ошибках. Существует очень мало поддержки печати (вы можете создавать документы postscript с холста, но нет встроенного поддержка в текстовом виджете для печати). Некоторые люди утверждают, что ТЗ уродливы. Ткинтер не такой "питон", как ух-Пифон.

плюсы wxPython, в: он имеет гораздо больше виджетов, хотя часто это означает, что есть три типа виджетов ноутбука, а не один виджет кухонной раковины. виджеты wxPython-это объекты python первого класса, которые действительно хороши. wxPython обычно выглядит лучше на машинах *nix. wxPython кажется более популярным; некоторые люди заботятся об этом, некоторые нет. wxPython имеет гораздо лучшую поддержку печати, чем Tkinter.

минусы wxPython, в: wxPython требует отдельной загрузки, которая может быть болью для управления при развертывании приложения. Документация очень слабая, на мой взгляд, очень трудно найти конкретную информацию. книга "wPython в действии" дает хорошее введение, но не может быть положена в качестве справочного пособия. wxPython немного глючит IMO, и есть определенные кросс-платформенные проблемы. Я видел, как wxPython рушится и печатает утверждения чаще, чем Tkinter.


Если вы новичок и хотите выбрать один, я настоятельно рекомендую tkinter для его простоты и эффективности. wxPython может подождать, пока у вас не будет очень хорошего понимания python, особенно классов и GUI в целом.