建立在: http://www.reddit.com/r/Python/comments/7v5ra/whats_your_favorite_gui_toolkit_and_why/
1-易于设计/集成-学习曲线
2-支持/提供*nix、Windows、Mac、本地l&f的额外点数、支持移动或web
3-PythonAPI
4-文档质量-我想做一些更复杂的事情,现在怎么办?
5-轻量级打包,因此不必包含完整的安装程序(py2exe,py2app理想情况下可以按原样工作,不会生成大量MBs文件)
6-许可
7-其他人?(具体说明)
1-tkinter,当前支持(从2.6到3.0)
2-pyttk库
3-派克
4-pyQt
5个月
6-HTML-CGI,通过基于Python的框架(Django、Turbogears、web.py、Pylons…)或粘贴
7-其他人?(具体说明)
我只是想说TKinter很烂。遗憾的是,由于向后兼容,它似乎是用Python打包的。
文件很糟糕。看起来很可怕。我遇到了一些奇怪的bug,它们会导致Python崩溃。
Jython。
您可以使用Swing、Applet或Java平台可用的其他GUI框架。有关Graphical User Interfaces和2D Graphics的信息,请参见Java Tutorials。有很多书和documentation如API reference。
这是来自An Introduction to Jython的helloworld Swing应用程序。
这是Jythonapplet by Todd Ditchendorf that demonstrates multi-threaded particle drawing(60行)。
如果你只是对画线和圆感兴趣,你可以把它减半。
请不要犹豫扩大这个答案。
Tkinter
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样式的许可证。
PyQt
它是在Qt之上,C++框架之上。它非常先进,并且有一些像Qt设计器这样的好工具来设计您的应用程序。不过,你应该意识到,它不像Python 100%的感觉,而是接近它。这个documentation很好
这个框架真的很好。诺基亚旗下的Trolltech正在积极开发这款手机。Python的绑定由Riverbank开发。
PyQt可以在GPL许可证或商业许可证下使用。河岸PyQt许可证的价格约为每位开发商400欧元。
Qt不仅是一个GUI框架,而且还有许多其他类,可以通过使用Qt类创建应用程序。(如SQL、网络、脚本等)
Qt过去在每个平台上模拟GUI元素,但现在使用平台的本机样式(尽管不是本机GUI工具包):请参见the documentation for Mac OS X和the windows XP style
打包和运行py2exe或pyInstaller一样简单。我的PyQt应用程序的内容在windows上是这样的(为了正确安装,我在上面使用了InnoSetup):
QT附带了一个小部件设计器,甚至在最新版本中还附带了一个IDE来帮助设计QT软件。
PySide
PySide是一个绑定到Qt的LGPL。它是由诺基亚开发的,作为GPL PyQt的替代品。
wxPython
wxPython是使用wxWidgets-框架的Python绑定。这个框架在LGPL lic下是由开源社区开发的。
我真正缺少的是一个很好的界面设计工具,他们有3个左右,但没有一个是可用的。
我应该提到的一件事是,我在tab视图中发现了一个bug,尽管我没有使用任何高级的工具。(仅在MacOSX上)我认为wxWidgets没有Qt那么完美。
wxPython实际上只是关于GUI类,没有太多其他的东西。
wxWidgets使用本机GUI元素。
wxPython比Tkinter的一个优势是wxPython有一个更大的小部件库,可以从中进行选择。
其他
我对其他GUI框架没有任何经验,也许其他人有。
相关问题 更多 >
编程相关推荐