请不要犹豫,扩展此答案。
Tkinter是随Python一起提供的工具包。这意味着您已经拥有编写GUI所需的一切。同时也意味着如果您选择分发程序,大多数人已经拥有运行程序所需的内容。
Tkinter是成熟且稳定的,并且(至少可以说)非常易于使用。我发现它比wxPython更容易使用,但显然这在一定程度上是主观的。
Tkinter因外观丑陋而声名狼藉。虽然很容易用Tkinter创建丑陋的GUI界面,但也很容易创建漂亮的GUI界面。Tkinter不会过多干涉您的操作,但也不会过度保护。Tkinter在Mac和Windows上看起来最好,因为它使用本地窗口小部件,但在Linux上也还可以接受。
关于Tkinter的外观问题,另一点是,对于大多数情况下,外观并不像人们所说那样重要。使用Tkinter、wxPython、PyQT等工具包编写的大多数应用程序都是特定用途的应用程序。对于这些工具包用于的应用程序类型来说,可用性比外观更为重要。如果应用程序的外观很重要,那么很容易将Tkinter应用程序修改得更好看。
Tkinter具有一些其他工具包无法匹配的功能。变量跟踪、命名字体、几何布局管理器以及Tkinter处理事件的方式仍然是评估其他工具包的标准。
作为缺点,Tkinter是一个运行在Python内部的Tcl解释器的包装器。对于使用Tkinter开发的人来说,这大多数情况下是不可见的,但有时会导致暴露出这种架构的错误消息。你会收到关于像".1245485.67345"这样命名的小部件的错误投诉,除非你也熟悉Tcl/tk的工作原理,否则几乎没有任何意义。
另一个缺点是Tkinter没有像wxPython那样许多预制的小部件。例如,Tkinter中的分层树小部件有些弱,而且没有内置的表格小部件。另一方面,Tkinter的画布和文本小部件非常强大且易于使用。但是,对于您将编写的大多数应用程序,您将拥有所需的所有内容。只是不要指望用Tkinter复制Microsoft Word或Photoshop。
我不知道Tkinter的许可证是什么,我认为与整个Python相同。Tcl/tk具有BSD-style许可证。
PyQt
它是基于C++框架
Qt构建的。它非常先进,并具有一些很好的工具,如Qt Designer,可用于设计应用程序。但是,您应该知道,它并不感觉完全像Python,但接近。
documentation非常出色。
这个框架非常好。它由Nokia拥有的Trolltech积极开发。Python的绑定是由Riverbank开发的。
PyQt可在GPL许可证或商业许可证下使用。一份河岸PyQt许可证的价格约为每个开发人员400欧元。
Qt不仅是一个GUI框架,还有很多其他类,可以只使用Qt类创建应用程序。(例如SQL,网络,脚本等)
Qt曾经在每个平台上模拟GUI元素,但现在使用平台的原生样式(尽管不是原生GUI工具包):请参阅Mac OS X的文档和Windows XP风格
打包只需运行py2exe或pyInstaller即可。我的PyQt应用程序在Windows上的内容如下(我在其上使用了InnoSetup进行适当的安装):
pyticroque.exe PyQt4.QtGui.pyd unicodedata.pyd
MSVCP71.dll PyQt4._qt.pyd unins000.dat
MSVCR71.dll python25.dll unins000.exe
PyQt4.QtCore.pyd sip.pyd _socket.pyd
QT带有小部件设计师,甚至在最近的版本中还带有IDE来帮助设计Qt软件。
PySide是对Qt的LGPL绑定。它由诺基亚开发,作为GPL PyQt的替代品。
尽管 PySide 基于不同的技术,而非现有的 GPL 许可的 PyQt 绑定,但 PySide 最初的目标是与其兼容。除了 PyQt 兼容的 API 之外,未来还将提供更具 Python 风格的 API。
wxPython 是使用 wxWidgets 框架的 Python 绑定。该框架采用 LGPL 许可,并由开源社区开发。
我真正缺少的是一个好的界面设计工具,他们大约有3个,但没有一个是可用的。
我应该提到的一件事是,尽管我没有使用任何高级功能,但我在选项卡视图中发现了一个错误。(仅在 Mac OS X 上) 我认为 wxWidgets 不如 Qt 精细。
wxPython 真正关注的只是 GUI 类,其他内容很少。
wxWidgets 使用本地 GUI 元素。
wxPython 相对于 Tkinter 的优势在于,它拥有更多的小部件库供选择。
其他
我没有使用其他 GUI 框架的经验,也许其他人有。