请不要犹豫扩大这个答案。
Tkinter是python附带的工具包。这意味着您已经拥有了编写GUI所需的一切。这也意味着,如果你选择发布你的程序,很可能其他人已经拥有了运行你的程序所需的东西。
Tkinter是成熟和稳定的,而且(至少可以说)很容易使用,我发现它比wxPython更容易使用,但显然这有点主观。
Tkinter因为长得丑而落伍而受到非议。虽然用Tkinter很容易创建难看的图形用户界面,但创建好看的图形用户界面也很容易。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样式的许可证。
它是在Qt之上,C++框架之上。它非常先进,并且有一些像Qt设计器这样的好工具来设计您的应用程序。不过,你应该意识到,它不像Python 100%的感觉,而是接近它。这个documentation很好
这个框架真的很好。诺基亚旗下的Trolltech正在积极开发这款手机。Python的绑定由Riverbank开发。
PyQt可以在GPL许可证或商业许可证下使用。河岸PyQt许可证的价格约为每位开发商400欧元。
Qt不仅是一个GUI框架,而且还有许多其他类,可以通过使用Qt类创建应用程序。(如SQL、网络、脚本等)
打包和运行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的替代品。Although based on a different
technology than the existing
GPL-licensed PyQt bindings, PySide
will initially aim to be
API-compatible with them. In addition
to the PyQt-compatible API, a more
Pythonic API will be provided in the
future.
wxPython是使用wxWidgets-框架的Python绑定。这个框架在LGPL lic下是由开源社区开发的。
我真正缺少的是一个很好的界面设计工具,他们有3个左右,但没有一个是可用的。
我应该提到的一件事是,我在tab视图中发现了一个bug,尽管我没有使用任何高级的工具。(仅在MacOSX上)我认为wxWidgets没有Qt那么完美。
wxPython实际上只是关于GUI类,没有太多其他的东西。
wxWidgets使用本机GUI元素。
wxPython比Tkinter的一个优势是wxPython有一个更大的小部件库,可以从中进行选择。
其他
我对其他GUI框架没有任何经验,也许其他人有。