在Python中开发GUI:Tkinter与PyQt

Arn*_*shn 86 python user-interface tkinter pyqt

如果有人想在Python中开发一个用户界面,那么应该选择哪一个:TkInter或PyQt?

我刚开始使用TkInter,我能够使用标签,按钮,文本框等基本小部件来获得一些简单的UI.只是想知道PyQt与TkInter相比有多好?

干杯

Sam*_*ane 67

PyQt,如果你正在开发任何严肃的东西,特别是你学到的东西将直接转换为使用其他语言的Qt,如果你需要,Qt可能是目前最好的跨平台界面工具包.

只有两个真正的(潜在的)缺点:

PyQt仅在GPL下提供.这意味着如果您发布代码,则必须根据诺基亚GPL例外条款或商业许可证(需要花钱)在兼容许可下提供.这与Qt形成对比,后者现在可以在LGPL下获得.

默认情况下,Python安装不包含PyQt.您将不得不自己打包库.(Ars Technica有一篇关于为Windows和OS X做的很好的文章.)

  • 诺基亚已经开始构建一个名为PySide的库,它提供与PyQt几乎相同的功能,但是在LGPL下.它仅适用于基于*NIX的系统.但你几乎可以在你的导入中将"PyQt4"与"PySide"交换,并且(几乎)一切都有效.http://www.pyside.org (16认同)
  • 对于开源,PyQt向GPL授予例外,该例外指定了您可能使用的许可证列表.可以在此处找到异常的全文,并在PyQt源包中包含一个副本.http://www.riverbankcomputing.co.uk/software/pyqt/license http://doc.trolltech.com/4.4/license-gpl-exceptions.html (5认同)

小智 35

PyQt现在是我们的主要GUI工具包,经过1年的开发,我不想回归其他任何东西.它稳定,成熟,跨平台,完全原生.甚至系统对话框(例如打开文件)也是操作系统使用的对话框.

我调整了我的XP主题,现在我的应用程序皮肤相应.这创造了一种非常专业的外观,与工具包不相上下Swing.API非常广泛,超越了像小部件这样的纯GUI.它支持数据库连接,打印,线程(我使用它,它就像一个魅力),...我甚至用它来生成PDF(不需要其他外部库).我会推荐Mark Summerfield的书,虽然' 使用Python和Qt进行快速GUI编程 '可以帮助您提高速度.请记住,Qt附带了一个GUI构建器(Qt设计器),这是我使用过的最好的(我尝试了很多).
我甚至使用这个构建器来创建模型以向用户显示(这很容易!).

我把它介绍给其他2位开发者,并没有听到他们的抱怨......

  • 警告:Qt只*看起来*本机.实际上模拟了用户界面元素(至少在Mac OS X上).据报道,由于这种模拟,图形元素的"感觉"有时很奇怪. (9认同)

luc*_*luc 17

tkinter用于简单界面的小应用程序.我非常喜欢它,即使缺少一个好的WYSIWYG编辑器可能是一个更大的应用程序的问题.

对于大型应用程序,PyQt可能是更好的选择.它有一个非常好的屏幕设计师,但许可可能是一个问题.

最后,wxPython可能是一个很好的选择,因为它没有这些缺点.

  • 我用tk编写了大型商业应用程序没有问题.它很好地扩展.如果您的数据集遇到数百万个项目并不是特别好,但很少有人开发这样的应用程序. (6认同)
  • 感谢Bryan的反馈.这个答案是很久以前的,我现在有更好的Tk经验,我越来越喜欢它. (2认同)

小智 7

PyQt非常容易学习,Qt的文档也适用于PyQt,还有.NET和Java的端口.所以,它是童话跨平台和跨语言.您还在Eric IDE中集成了PyQt .

对CSS样式的支持也非常出色.

请参阅新的OpenSuSE安装程序,了解您可以使用它做什么.